2013-10-15 7 views
5

मैंने देखा है कि नहीं परमाणु BooleanArray डेटाटाइप परमाणु इंटेगरएरे के समान जावा में है। हालांकि मैं अपनी वर्तमान जरूरतों के लिए परमाणु बूलियन [] का उपयोग कर सकता हूं, लेकिन मुझे यह समझने में उत्सुकता थी कि क्यों परमाणु BooleanArray लाइब्रेरी का हिस्सा नहीं है।जावा में कोई परमाणु BooleanArray डेटाटाइप क्यों नहीं है?

इसमें कोई भी विचार बहुत सराहना की जाएगी।

धन्यवाद

+0

आप [जेएसआर 166 कंसुरेंसी मेलिंग सूची] (http://jsr166-concurrency.10961.n7.nabble.com/) पर पूछने का प्रयास कर सकते हैं –

उत्तर

0

मुझे लगता है कि आप आवंटित करेगा अगर बाद से AtomicIntegerArray, AtomicBooleanArray रूप में देखते हैं किया जा सकता है केवल 0 (गलत) और 1 (सही) मान। तो डुप्लिकेट कोड क्यों लिखना है?

+1

दिलचस्प। लेकिन फिर मेरा सवाल यह होगा कि जावा में बुलियन क्यों है, क्योंकि आप केवल int के साथ दूर कर सकते हैं? – JProgrammer

+0

चूंकि बूलियन प्राचीन प्रकार है जो लगभग हर जावा प्रोग्राम में उपयोग किया जाता है, इसलिए इसे कोड पठनीयता के लिए जोड़ा गया था। इसके अलावा बूलियन वैरिएबल एक बिट द्वारा प्रस्तुत किया गया है जबकि पूर्णांक 32 बिट लंबा है। –

+0

@ जेप्रोग्रामर 'बूलियन' 'int' बिट्ससेट से 4x छोटा हो सकता है, प्रतिक्रिया के लिए धन्यवाद 'int []' –

3

परमाणु बूलियन वास्तव में int लपेटता है जो झूठी या सत्य के लिए 0 या 1 पर सेट होता है। ऐसा इसलिए है क्योंकि यह तुलना एंड्रॉइड विधियों का उपयोग करता है जो int आधारित हैं, और छोटे नहीं हैं।

आप एक एटॉमिकबोलियनएरे को कार्यान्वित कर सकते हैं, लेकिन साफ ​​नहीं है कि शायद यह क्यों नहीं है। यानी जेवीएम परमाणु बुलियन ऑपरेशंस का समर्थन नहीं करता है क्योंकि सीपीयू जैसे x64 और एआरएम डॉन 'इसका समर्थन करते हैं।

+0

मुझे परमाणु परिचालनों का समर्थन करने में लंबे और दोगुना से अवगत था, लेकिन बूलियन मेरे लिए नया है। पॉइंटर्स के लिए धन्यवाद। – JProgrammer

+0

@ जेप्रोग्रामर लंबे समय पर परमाणु संचालन का समर्थन करता है और इस प्रकार आप डबल परमाणु रूप से लागू कर सकते हैं। AtomicLong और AtomicLongArray देखें। यह बूलियन है जिसमें कोई आंतरिक समर्थन नहीं है (जैसे बाइट, चार और छोटा) –

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