मान लीजिए कि हमारे पास खाता सेवा नामक एक वर्ग है जो खातों की स्थिति का प्रबंधन करता है।एक विधि लिखने के सर्वोत्तम तरीके जो मल्टीथ्रेड किए गए जावा वातावरण में दो ऑब्जेक्ट्स अपडेट करते हैं?
AccountService
interface AccountService{
public void debit(account);
public void credit(account);
public void transfer(Account account, Account account1);
}
इस परिभाषा को देखते हुए के रूप में परिभाषित किया गया है, हस्तांतरण को लागू करने() ताकि आप सुनिश्चित कर सकते हैं कि स्थानांतरण एक परमाणु ऑपरेशन है सबसे अच्छा तरीका क्या है।
मैं जवाब का संदर्भ है कि जावा 1.4 कोड के साथ ही उत्तर दोनों Account
वस्तुओं पर जावा 5
गतिरोध – unbeli
+1 से बचने के लिए +1: हमेशा उसी क्रम में वस्तुओं पर ताला लगा overstressed नहीं जा सकता है। – Powerlord
यदि प्रदर्शन महत्वपूर्ण नहीं है, और एक खाता खाता है, तो कोई भी स्थानांतरण-विधि को 'सिंक्रनाइज़' कर सकता है। – aioobe