abstract:In software engineering, double-checked locking (also known as "double-checked locking optimization"Schmidt, D et al. Pattern-Oriented Software Architecture Vol 2, 2000 pp353-363) is a software design pattern used to reduce the overhead of acquiring a lock by first testing the locking criterion (the "lock hint") without actually acquiring the lock.