Double-checked locking is a way that programmers can make sure that a piece of code only runs once, even if many different parts of a program try to run it at the same time. It's like making sure only one person gets to use the bathroom at a time, even if a lot of people want to use it.
Imagine you're at a big party with lots of rooms. You want to make sure that only one person gets the cake from the kitchen, but you don’t want to spend all your time guarding it. You could put a lock on the door to the kitchen, but then someone might unlock it and go in when you're not looking.
So, you come up with a plan: you'll put a sign on the kitchen door saying "Closed for Cleaning", to make it look like nobody wants to go in. You'll check the door once in a while to see if anyone opened it. If nobody has opened it, you'll unlock it, get the cake, and lock it back up. That way, even though many people might try to get the cake, only one person will be able to get it at a time.
Programmers use a similar plan with double-checked locking. They put a "lock" on a piece of code that they only want to run once. But instead of using a sign, they use a special piece of code. They check to see if the code has already run. If it hasn't, they "unlock" the code, run it, and "lock" it again.
This way, even if many different parts of the program try to run the code at the same time, only one can get in. It's like having one bathroom and a very good system of turning people away if it's already occupied.