स्कूल में एक परियोजना के लिए, हम जावा 5.0 में एक बहुप्रचारित सर्वर बना रहे हैं। यह परियोजना सर्वर के समवर्ती पहलू पर केंद्रित है।जावा: ServerSocket.accept थ्रेडसेफ है?
हमारे पास अनुरोधों का इलाज करने के लिए समर्पित कुछ धागे हैं। ऐसा करने के लिए, उनके पास नए कनेक्शन स्वीकार करने के लिए ServerSocket.accept() पर कॉल है। हमारी पसंद उनमें से एक समूह शुरू करना था और इन्हें आने वाले कनेक्शनों को इस धारणा के साथ इलाज करना था कि दो धागे एक ही समय में एक ही कनेक्शन को स्वीकार नहीं कर सकते हैं।
लेकिन अब मुख्य समस्या यह है कि हमें एपीआई में कुछ भी नहीं मिल रहा है जो हमें इस व्यवहार की गारंटी देता है (या हमने सही नहीं देखा) और हमारे पास "यह काम करता है" सबूत को छोड़कर कुछ भी नहीं है।
क्या कोई जावा विधियों पर इस तरह की जानकारी देखने के लिए स्रोत है?
हम जानते हैं कि यह डिज़ाइन वास्तव में अच्छा नहीं है और हमने इसे पहले से ही वर्कर थ्रेड के पूल का उपयोग करने के लिए बदल दिया है। अब हमारे पास केवल एक धागा है जो कार्यकर्ता धागे को अनुरोध स्वीकार करता है और भेजता है। मुझे अभी भी पता चलेगा कि जावा विधियों की थ्रेड-सुरक्षा के बारे में कहीं जानकारी है या नहीं। –