2009-11-07 15 views
6

के बारे में अवधारणात्मक प्रश्न यदि मेरे पास एक कक्षा है जिसका रन() विधि 1000 एमएस के लिए सोती है और फिर "थ्रेड" प्रिंट करती है। और मैं अपने मुख्य कार्यक्रम से यह धागा शुरू करता हूं, फिर मेरा मुख्य कार्यक्रम तुरंत 2000 एमएस के लिए सो जाता है, और फिर "मुख्य थ्रेड" प्रिंट करता है।जावा कंसुरेंसी

क्या यह गारंटी है कि थ्रेड मुख्य थ्रेड से पहले मुद्रित किया जाएगा?

उत्तर

16

नहीं। संकल्पनात्मक रूप से, यह संभव है कि जिस सिस्टम पर आप चल रहे हैं वह इतना व्यस्त होगा कि नए धागे को कुछ भी चलाने का मौका भी नहीं मिलता है, इससे पहले कि मुख्य धागे को सोने का मौका मिले और "मुख्य थ्रेड" । हकीकत में, यह निश्चित रूप से बहुत ही असंभव है, लेकिन मूल रूप से sleep एक समन्वय आदिम नहीं है।

+0

+1: नींद की कोई गारंटी नहीं है। यह अनुरोधित समय के लिए भी सो नहीं सकता है क्योंकि यह बाधित हो सकता है। –

+0

इस मामले में, यह गारंटी नहीं है कि या तो संदेश मुद्रित किया जाएगा। ;) –

संबंधित मुद्दे