सिंक्रोनाइज़ेशन (Synchronization)

यदि दो या अधिक थ्रेड साथ-साथ किसी एक मैथड का प्रयोग करें तो गंभीर समस्या उत्पन्न हो सकती है। उदाहरण के लिए मान लेते हैं कि एक थ्रेड किसी फाइल में से डेटा पढ़ रहा है तथा ठीक उसी समय दूसरा थ्रेड उस फाइल में कुछ परिवर्तन कर रहा है, तो ऐसी स्थिति में हो सकता है कि डेटा पढ़ने वाले थ्रेड को सही डेटा प्राप्त न हो। ऐसी स्थिति से बचने के लिए जावा में एक तकनीक का प्रयोग किया जा सकता है जिसे सिंक्रोनाइज़ेशन कहते हैं। इस तकनीक के माध्यम से हम ऐसी व्यवस्था कर सकते हैं, जिससे एक मैथड को एक समय में एक ही थ्रेड प्रयोग कर सके। इसके लिए हमें उस मैथड को synchronized कीवर्ड की सहायता से निम्नानुसार डिफाइन करना होता है -

synchronized void calculate( )
{
	. . . . . . .
	. . . . . . .
	. . . . . . .
}

उपरोक्त उदाहरण के माध्यम से यह कहा जा सकता है कि यदि calculate( ) मैथड को एक से अधिक थ्रेड साथ-साथ प्रयोग करने की कोशिश करेंगे तो synchronized कीवर्ड के कारण ऐसा संभव नहीं हो पाएगा।

सुझाव / कमेंट