दोस्तों ने हाल ही में लिनक्स धागे के मामले में जावा के साथ multhreaded प्रोग्रामिंग शुरू की है, मुझे पता है कि कर्नेल उन्हें शेड्यूल करता है (क्योंकि वे इकाई इकाइयां हैं जो निर्धारित हैं) लेकिन जावा प्रोग्राम जेवीएम पर चल रहे हैं जो मेरे सिस्टम में (आरएचईएल 6.1) को एक ऐसे प्रोग्राम के रूप में कार्यान्वित किया जाता है जो उपयोगकर्ता स्पेस इंस्टेंस के रूप में चलाया जाता है। इसलिए, कर्नेल जावा जावा के बारे में जागरूक होने के बिना, जेवीएम में प्रीपेप्टिव मल्टीटास्किंग कैसे किया जाता है? अगर यह बात कर में JVM और कर्नेल बातचीत के पूरे तंत्र .Plz दिया जाता है की जानकारी के संभावित स्रोतों का हवाला देतेजावा थ्रेड कैसे निर्धारित किए जाते हैं?
उत्तर
पढ़ें Distinguish Java threads and OS threads? जैसा कि मैंने टिप्पणी जावा धागे में कहा साधारण ओएस धागे सिर्फ JVM कोड
चल रहा यह उपयोगी होगाहाँ, मुझे यह मिलता है लेकिन कृपया मुझे बताएं कि जेएमवी दुभाषिया द्वारा जावा कोड की व्याख्या इस बहुप्रचारित वातावरण में कैसे की जाती है – Tanay
सिंक्रनाइज़ेशन क्रियाओं को छोड़कर प्रत्येक थ्रेड जावा कोड को स्वतंत्र रूप से व्याख्या करता है अगर यह एकमात्र धागा था। जब कोई नया धागा बनाया जाता है तो यह बताया जाता है कि जावा कोड किस प्रकार व्याख्या करता है। –
जेवीएम सिर्फ एक सामान्य प्रक्रिया है जो एक धागे से शुरू होती है और इसे बाद में जितनी अधिक थ्रेड पसंद करती है। प्रक्रियाओं के बीच और प्रक्रियाओं के अंदर धागे के बीच - दो स्तरों पर शेड्यूलिंग किया जाता है। यह सब ओएस (libs के माध्यम से) द्वारा किया जाता है - जेवीएम बस हुक करता है। अधिक जानकारी के लिए Google posix धागे - जो कि जेवीएम के लिए खुलासा (एपीआई) है। एक देशी धागा करने के लिए जावा/JVM प्रक्रिया नक्शे में http://www.ibm.com/developerworks/java/library/j-rtj3/
धागे और आप दोनों जावा धागा आईडी और एक धागा स्टैक ट्रेस डंप में देशी धागा आईडी देख सकते हैं:
इस विवरण में एक सा हो जाता है। अपने पसंदीदा उपकरण का उपयोग कर सभी जावा धागे की धागा ढेर हो जाओ: Ctrl + तोड़ने की तरह
- कमांड लाइन संकेत कंसोल में (विंडोज़) या Ctrl + \ लिनक्स) जहां जावा कार्यक्रम
- कमांड लाइन टूल चल रहा है (-QUIT या JDK से jstack)
- JDK और/या JMX आदि में दृश्य वीएम मारने इस तरह के एक धागा डंप की पहली पंक्ति से
उदाहरण निकालने: ... टीआईडी = 0x0000002adaba9c00 एनआईडी = 0x754c ...
टीआईडी = जावा धागा आईडी
एनआईडी = देशी आईडी (ओएस धागा आईडी)
उपयोग ऑपरेटिंग सिस्टम के उपकरणों देशी आईडी का उपयोग कर धागा के बारे में अधिक जानने के लिए (यह हेक्स में है)।
जावा कोड आप ThreadMXBean अधिक धागा जानकारी प्राप्त कर सके प्रोग्राम के लिए यदि आप चाहते हैं अंदरhttp://docs.oracle.com/javase/6/docs/api/java/lang/management/ThreadMXBean.html
"लेकिन जावा कार्यक्रमों JVM जो अपने सिस्टम (RHEL 6.1) में एक कार्यक्रम के रूप में लागू है पर चलाए जा रहे हैं कि एक उपयोगकर्ता अंतरिक्ष instance.So, गिरी जावा धागे के बारे में पता किया जा रहा बिना के रूप में चलाया जाता है ... "
यह बयान सभी आधुनिक JVM के कि देशी धागे का उपयोग के लिए सही नहीं है। मुझे लगता है कि जावा 1.2 के बाद से यह डिफ़ॉल्ट है। जेवीएम द्वारा मूल थ्रेड कार्यान्वयन का अर्थ है कि प्रत्येक बार जब थ्रेड जावा कोड में थ्रेड को चालू/चलाता है, तो JVM ओएस को थ्रेड बनाने के लिए कहता है। चूंकि ये देशी धागे हैं, इसलिए कर्नेल उनके बारे में जानता है और तदनुसार उनका व्यवहार करता है।इसके अलावा, लिनक्स पीओएसईक्स धागे का समर्थन करता है/लागू करता है, और जैसे कि लिनक्स आधारित सिस्टम पर आपको अपने जावा ऐप्स के थ्रेड
- 1. जावा एनोटेशन कब निष्पादित किए जाते हैं?
- 2. सी # जेनेरिक कैसे लागू किए जाते हैं?
- 3. कमजोर संदर्भ कैसे लागू किए जाते हैं?
- 4. म्यूटेक्स कैसे कार्यान्वित किए जाते हैं?
- 5. डोम पार्सर्स कैसे कार्यान्वित किए जाते हैं?
- 6. सदस्य प्रकार कैसे कार्यान्वित किए जाते हैं?
- 7. लॉगरिदम प्रोग्राम कैसे किए जाते हैं?
- 8. पीडीएफ आकार कैसे निर्दिष्ट किए जाते हैं?
- 9. आईओएस गेम्स कैसे स्थापित किए जाते हैं?
- 10. एचटीएमएल चेकबॉक्स तत्व केवल तभी सबमिट किए जाते हैं जब वे चेक किए जाते हैं?
- 11. आईआईएस 7 धागे कैसे आवंटित किए जाते हैं?
- 12. लागू/प्रयास ब्लॉक कैसे लागू किए जाते हैं?
- 13. डीबगर ब्रेकपॉइंट्स कुशलतापूर्वक कार्यान्वित कैसे किए जाते हैं?
- 14. मल्टीकोर + हाइपरथ्रेडिंग - धागे कैसे वितरित किए जाते हैं?
- 15. लिनक्स पर साझा लाइब्रेरी निर्भरता पथ कैसे निर्धारित किए जाते हैं?
- 16. स्टेटलेस ईजेबी क्यों पूल किए जाते हैं?
- 17. एनआईओ प्रत्यक्ष बफर कब और कैसे मुक्त किए जाते हैं?
- 18. साझा किए गए ताले लॉक कब जारी किए जाते हैं?
- 19. व्यूपेजर में वेब व्यू लोड नहीं किए जाते/प्रस्तुत किए जाते हैं जब तक पेज
- 20. जावा: जब ऑब्जेक्ट किसी ऑब्जेक्ट पर प्रतीक्षा करता है तो सभी मॉनीटर जारी किए जाते हैं?
- 21. सीरियल जनरेटर/दरार कैसे विकसित किए जाते हैं?
- 22. एंड्रॉइड टच इवेंट कैसे वितरित किए जाते हैं?
- 23. सिल्वरलाइट अनुप्रयोग - वे कैसे अपडेट किए जाते हैं?
- 24. पर्ल के मूल पुस्तकालय कैसे प्रबंधित किए जाते हैं?
- 25. MPI_Scatter और MPI_Gather सी से कैसे उपयोग किए जाते हैं?
- 26. Plpython में आयात विवरण कैसे प्रबंधित किए जाते हैं?
- 27. कालबाह्य कोडिनेटर सत्र कैसे साफ किए जाते हैं?
- 28. नामित पैरामीटर बैच फ़ाइल में कैसे पास किए जाते हैं?
- 29. स्मृति में फ़्लोटिंग पॉइंट नंबर कैसे संग्रहीत किए जाते हैं?
- 30. सी में फ़ंक्शन तर्क कैसे पारित किए जाते हैं?
के लिए पर्थ्रेड व्यवहार प्राप्त नहीं होगा, लेकिन प्रत्येक जावा थ्रेड को समर्पित ओएस थ्रेड द्वारा नियंत्रित किया जाता है। इसलिए आपके ओएस को जेवीएम इत्यादि से अवगत होने की आवश्यकता नहीं है। –