मैं गारंटी नहीं दे सकता कि WebSocketClient
100% धागा सुरक्षित है, लेकिन मैं कह सकता हूं कि यह कुछ हद तक थ्रेड सुरक्षित होना है।
source code को देखते हुए, हम देखते हैं कि निजी विधि initializeClient
सिंक्रनाइज़ है:
private synchronized void initializeClient() throws IOException
और उस connect
विधि का उपयोग कर रहा है एक Executor
:
// Execute the connection on the executor thread
executor.execute(promise);
वर्ग के प्रलेखन कुछ नहीं कहता है थ्रेड सुरक्षा के बारे में, लेकिन connect
विधि से सिंक्रनाइज़ initializeClient
विधि का कॉल और Executor
का उपयोग स्पष्ट सिग है एनएस कि बहु-थ्रेडिंग का कुछ रूप समर्थित है।
== संपादित करें ==
थ्रेड सुरक्षा अक्सर ही आपरेशन के कुछ प्रकार के लिए गारंटी है। उदाहरण के लिए इसे केवल पढ़ने के संचालन के लिए गारंटी दी जा सकती है, न कि लेखन कार्यों के लिए। थ्रेड सुरक्षा की शर्तों को परिभाषित करने के लिए यह दस्तावेज़ीकरण की भूमिका है। सर्जीओ मोंटोरो की टिप्पणी सही है, अगर एक धागा किसी अन्य थ्रेड द्वारा इसके उपयोग के दौरान वस्तु को संशोधित करता है, तो अजीब चीजें हो सकती हैं। WebSocketClient
के मामले में थ्रेड सुरक्षा निश्चित रूप से कम से कम अन्य धागे द्वारा ऑब्जेक्ट के गैर-संशोधन के लिए प्रतिबंधित है, या WebSocketClient
आंतरिक स्थिति के सिंक्रनाइज़ और समेकित संशोधन के लिए।
स्रोत
2016-12-13 21:22:46
+1 वेबसाकेट क्लाइंट निश्चित रूप से थ्रेड-सुरक्षित होने के लिए लिखा गया है। तथ्य यह है कि _code में कभी-कभी bugs_ हो सकता है इसका मतलब यह नहीं है कि यह बहुप्रचारित कोड नहीं है। –