Page 167 - CITS - CSA - TP (Volume 2) - Hindi
P. 167
कं ूटर सॉ वेयर ए ीके शन - CITS
CounterWithSync counter = new CounterWithSync();
IncrementThreadWithSync thread1 = new IncrementThreadWithSync(counter);
IncrementThreadWithSync thread2 = new IncrementThreadWithSync(counter);
thread1.start();
thread2.start();
}
}
ीकरण:
1 CounterWithSync ास:
• यह ास एक िनजी िगनती चर के साथ एक काउंटर का ितिनिध करता है।
• increment() िविध िसं नाइज़ है, िजसका अथ है िक एक समय म के वल एक ेड ही इस िविध को िन ािदत कर सकता है।
• increment() िविध के अंदर, एक लूप पाँच बार पुनरावृित करता है, हर बार काउंट म एक की वृ करता है।
2 IncrementThreadWithSync ास:
• यह ास ेड ास का िव ार करता है और एक ेड का ितिनिध करता है जो काउंटर को बढ़ाता है।
• इसम CounterWithSync ऑ े का संदभ होता है।
3 MultithreadingWithSyncExample ास:
• इस ास म main() िविध होती है, जो ो ाम के वेश िबंदु के प म काय करती है।
• main() के अंदर:
• CounterWithSync नामक काउंटर का एक उदाहरण बनाया जाता है।
• IncrementThreadWithSync के दो उदाहरण, thread1 और thread2, काउंटर ऑ े के संदभ म बनाए जाते ह ।
• दोनों ेड्स को start() िविध का उपयोग करके एक साथ शु िकया जाता है।
4 आउटपुट:
• चूंिक increment() िविध िसं नाइज़ है, इसिलए एक समय म के वल एक ेड ही इसे िन ािदत कर सकता है।
• इस कार, आउटपुट दो ेड्स के इंटरली ड िन ादन को िदखाएगा, िजससे काउंटर म वृ होगी।
• ेक ेड, वृ से पहले और बाद म िगनती दिश त करता है, िजससे यह सुिनि त होता है िक काउंटर को ेड-सुरि त तरीके से बढ़ाया गया
है।
5 ेड से ी :
• िसं ोनाइजेशन यह सुिनि त करता है िक एक समय म के वल एक ेड ही कोड के मह पूण भाग (इस मामले म , increment() िविध) को
िन ािदत कर सकता है।
• यह रेस कं डीशन को रोकता है और यह सुिनि त करता है िक साझा संसाधन (काउंट वै रएबल) को ेड-सुरि त तरीके से ए ेस िकया जाए।
यह ो ाम दशा ता है िक जब कई ेड एक साथ साझा संसाधनों तक प ँचते ह , तो ेड सुर ा सुिनि त करने के िलए जावा म िसं ोनाइज़ेशन का
उपयोग कै से िकया जाता है। यह डेटा कर शन को रोकने और म ी- ेडेड वातावरण म साझा डेटा की इंटीि टी को बनाए रखने के िलए आव क है।
153
CITS : IT & ITES - कं ूटर सॉ वेयर ए ीके शन - अ ास 105

