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