सॉफ़्टवेयर इंजीनियरिंग में, डबल-चेक लॉकिंग (जिसे "डबल-चेक लॉकिंग ऑप्टिमाइज़ेशन" के रूप में भी जाना जाता है) एक सॉफ़्टवेयर डिज़ाइन पैटर्न है जिसका उपयोग लॉक प्राप्त करने से पहले लॉकिंग मानदंड ("लॉक संकेत") का परीक्षण करके लॉक प्राप्त करने के ओवरहेड को कम करने के लिए किया जाता है। . लॉकिंग केवल तभी होती है जब लॉकिंग मानदंड जांच इंगित करती है कि लॉकिंग आवश्यक है।

यह पैटर्न, जब कुछ भाषा/हार्डवेयर संयोजनों में लागू किया जाता है, असुरक्षित हो सकता है। कभी-कभी, इसे एक विरोधी पैटर्न माना जा सकता है।

इसका उपयोग आमतौर पर बहु-थ्रेडेड वातावरण में "आलसी आरंभीकरण" को लागू करते समय लॉकिंग ओवरहेड को कम करने के लिए किया जाता है, खासकर सिंगलटन पैटर्न के हिस्से के रूप में। आलसी आरंभीकरण किसी मान को पहली बार एक्सेस किए जाने तक आरंभ करने से बचाता है।
दोबारा जांच की गई लॉकिंग कुछ स्थितियों में असुरक्षित हो सकती है और कभी-कभी इसे एक विरोधी पैटर्न माना जाता है। हालाँकि, इसे सुरक्षित तरीके से लागू किया जा सकता है।
सॉफ़्टवेयर इंजीनियरिंग में, डबल-चेक लॉकिंग (जिसे "डबल-चेक लॉकिंग ऑप्टिमाइज़ेशन" के रूप में भी जाना जाता है) एक सॉफ़्टवेयर डिज़ाइन पैटर्न है जिसका उपयोग लॉक प्राप्त करने से पहले लॉकिंग मानदंड ("लॉक संकेत") का परीक्षण करके लॉक प्राप्त करने के ओवरहेड को कम करने के लिए किया जाता है। . लॉकिंग केवल तभी होती है जब लॉकिंग मानदंड जांच इंगित करती है कि लॉकिंग आवश्यक है।

यह पैटर्न, जब कुछ भाषा/हार्डवेयर संयोजनों में लागू किया जाता है, असुरक्षित हो सकता है। कभी-कभी, इसे एक विरोधी पैटर्न माना जा सकता है।

इसका उपयोग आमतौर पर बहु-थ्रेडेड वातावरण में "आलसी आरंभीकरण" को लागू करते समय लॉकिंग ओवरहेड को कम करने के लिए किया जाता है, खासकर सिंगलटन पैटर्न के हिस्से के रूप में। आलसी आरंभीकरण किसी मान को पहली बार एक्सेस किए जाने तक आरंभ करने से बचाता है।