मेरे पास कई सूत्र हैं जो मुख्य रूप से उनके द्वारा अवरुद्ध किए गए अधिकांश जीवन को व्यतीत करने के लिए बैकअप के रूप में कार्य करते हैं sem_wait()
। क्या उन्हें रखना ठीक है या क्या नए धागों को छिड़कना बेहतर है, जब उन्हें वास्तविक काम करने की आवश्यकता हो? क्या कर्नेल थ्रेड्स पर प्रतीक्षा कर रहा है sem_wait()
और "बेकार" सीपीयू चक्र?
धन्यवाद।
उत्तर:
जवाब के लिए 2 № 1नहीं, किसी भी सामान्य थ्रेड लाइब्रेरी और ऑपरेटिंग सिस्टम के लिए ब्लॉक किए गए थ्रेड्स को कभी भी स्विच नहीं किया जाता है (यह एक बुरी तरह से डिज़ाइन किया गया है जहां वे थे)। लेकिन वे अभी भी स्मृति का उपयोग करेंगे, निश्चित रूप से।
जवाब के लिए 0 № 2
विकल्प A चुनें।
व्यर्थ चक्र मामूली हैं। आपके सूत्र हमेशा प्रतीक्षा की स्थिति में रहेंगे।
दूसरी ओर, थ्रेड्स को शुरू करने और रोकने की जटिलता, उन सभी को रखने के बजाय आपके प्रोग्राम लॉजिक को गंभीर रूप से नुकसान पहुंचा सकती है।