6
क्या मैं जावा में एक सेमफोर में अधिक परमिट जोड़ सकता हूं?जावा में 0 सेमेफोर परमिट बढ़ाना,
Semaphore s = new Semaphore(3);
इस कोड में कहीं भी मैं परमिट को 4 में बदलना चाहता हूं। क्या यह संभव है?
क्या मैं जावा में एक सेमफोर में अधिक परमिट जोड़ सकता हूं?जावा में 0 सेमेफोर परमिट बढ़ाना,
Semaphore s = new Semaphore(3);
इस कोड में कहीं भी मैं परमिट को 4 में बदलना चाहता हूं। क्या यह संभव है?
हां। release विधि (भ्रमित करने वाले imo नाम) परमिट बढ़ाने के लिए इस्तेमाल किया जा सकता के बाद से, डॉक्स से:
There is no requirement that a thread that releases a permit must
have acquired that permit by calling acquire.
Correct usage of a semaphore is established by programming convention
in the application.
दूसरे शब्दों में: अगर धागा बुला नहीं है
semaphore.release(10);
10 अधिक परमिट जोड़ने करेंगे किसी भी अधिग्रहण किया।
thx मास्टर! यह काम करता हैं! – KilyenOrs
+1 अच्छा अवलोकन। हालांकि, यह कार्यान्वयन के लिए सही है? सेमफोर के लिए कन्स्ट्रक्टर में परिभाषित अधिकतम से पहले वृद्धि करने की कोई आवश्यकता नहीं है, यह कार्यान्वयन बाद में रिलीज़ में बदल सकता है इस कार्यक्षमता को हटाने के लिए –
@ जोहानविंट - यह कन्स्ट्रक्टर में अधिकतम पैरामीटर नहीं है। उपलब्ध परमिट की प्रारंभिक संख्या। यह मान ऋणात्मक हो सकता है, जिसमें किसी भी अधिग्रहण को मंजूरी मिलने से पहले जारी किया जाना चाहिए। 'ऋणात्मक अधिकतम थोड़े मूर्ख होंगे .. – Ishtar