Double-checked locking is the attempt to avoid lock acquisition overhead by first checking the locking criterion in an unsafe manner before taking the lock. This is strongly discouraged, since it may behave differently, or not work at all, across memory models.