“थ्रेड.स्लीप” के बिना “जबकि (सच्चा)” लिनक्स पर 100% सीपीयू उपयोग का कारण बनता है लेकिन विंडोज पर नहीं?


158

मैंने जावा में एक सरल प्रोग्राम बनाया है:

public static void main(String[] args) throws InterruptedException {
    while (true) 
        ;
}

अगर मैं इसे लिनक्स मशीन पर चलाता हूं, तो यह 100% CPU उपयोग दिखाता है, लेकिन इससे OS धीमा नहीं होता है। हालाँकि, अगर मैं विंडोज़ पर सटीक समान कोड चलाता हूं, तो यह केवल 20% CPU उपयोग दिखाता है।

मैं विंडोज पर Oracle JRE और लिनक्स पर OpenJDK 6 का उपयोग कर रहा हूं।

मैं सोच रहा हूँ कि क्या विंडोज के शेड्यूलर ने थ्रेड को बेतरतीब ढंग से और लिनक्स के थ्रेड को प्रीमिट नहीं किया?


5
यह ऑपरेटिंग सिस्टम टास्क शेड्यूलिंग पर निर्भर है।
— सुभ्रज्योति मजुमदार

52
आपके पास कितने कोर हैं? जब सभी कोर व्यस्त हैं, तो Windows कार्य प्रबंधक 100% रिपोर्ट करता है। क्या आपका लिनक्स टूल कुछ ऐसा ही करता है, या यह 1 कोर के काम के लिए 100% की रिपोर्ट करता है, और जब सभी कोर व्यस्त हैं, तो यह 100*N cores %क्या है?
— Yiding

2
मेरे पास 4 कोर हैं और लिनक्स पर मैं सिस्टम मॉनीटर टूल का उपयोग करता
— हूं

1
@ सच में नहीं। यदि वह प्रोग्राम सभी चल रहा है, तो थ्रेड विंडोज और लिनक्स दोनों पर बिना किसी रुकावट के चलेगा।
— डेविड हेफर्नन

जवाबों:


387

डिफ़ॉल्ट रूप से, topलिनक्स पर तथाकथित आईआरआईएक्स मोड में चलता है, जबकि विंडोज टास्क मैनेजर नहीं करता है। मान लीजिए कि आपके पास 4 कोर हैं:

  • IRIX मोड के साथ, 1 पूरी तरह से उपयोग किया गया कोर 100% है और 4 कोर 400% हैं।

  • आईआरआईएक्स मोड ऑफ के साथ, 1 पूरी तरह से उपयोग किया गया कोर 25% है और 4 कोर 100% हैं।

इसका मतलब है कि डिफ़ॉल्ट रूप से, topलिनक्स पर ~ 100% के रूप में एक अनंत लूप दिखाई देगा और विंडोज इसे ~ 25% के रूप में दिखाएगा, और इसका मतलब बिल्कुल वही है।

आप IRIX मोड को टॉगल कर सकते हैं, जबकि + के topसाथ चल रहा है । इससे नंबर मैच हो जाएंगे।Shifti


2
Yup - '4 + 4' i7, (हाइपरथ्रेडिंग) पर, एक तुच्छ CPU लूप लगभग 17-18% पर आता है।
— मार्टिन जेम्स

हालांकि उत्तर देने वाले के पास 150UP है फिर भी उसका स्कोर 700 है ... क्या यह SO बग है ?? : - /
— uday

5
@uDaY, क्योंकि एक दिन में अधिकतम 200 प्रतिनिधि होते हैं, उसके बाद किसी भी upvotes को गिना नहीं जाता है, स्वीकार किए जाते हैं कि अभी भी होगा।
— sa_ddam213

3
@thatotherguy जब शिफ्ट-आई को टॉगल करना है? जबकि शीर्ष चल रहा है?
— Geek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.