SemaphoreSlim SpinWait और Monitor पर आधारित है, इसलिए लॉक को प्राप्त करने के लिए इंतजार करने वाला धागा दूसरे धागे से उपज देने से पहले लॉक को प्राप्त करने की उम्मीद में कुछ समय के लिए CPU चक्रों को जला रहा है। यदि ऐसा नहीं होता है, तो थ्रेड सिस्टम को संदर्भ को स्विच करने की अनुमति देता है और एक बार ओएस थ्रू शेड्यूल करने के बाद फिर से कोशिश करता है (कुछ सीपीयू साइकिल जलाकर)। लंबे इंतजार के साथ यह पैटर्न पर्याप्त मात्रा में सीपीयू चक्रों के माध्यम से जल सकता है। तो ऐसे कार्यान्वयन के लिए सबसे अच्छा मामला परिदृश्य तब होता है जब अधिकांश समय कोई प्रतीक्षा समय नहीं होता है और आप लॉक को तुरंत प्राप्त कर सकते हैं।
सेमाफोर ओएस कर्नेल में कार्यान्वयन पर निर्भर करता है, इसलिए हर बार जब आप लॉक का अधिग्रहण करते हैं, तो आप काफी सीपीयू चक्र खर्च करते हैं, लेकिन उसके बाद धागा केवल लॉक प्राप्त करने के लिए आवश्यक रूप से लंबे समय तक सोता है।