Synchronization और Locks
shared resources तक access का समन्वय करने के लिए synchronized blocks और explicit locks का उपयोग कीजिए
Synchronization और Locks, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 3 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
परिचय
सिंक्रोनाइज़ेशन तब दौड़ की स्थितियों से बचाता है, जब कई थ्रेड साझा डेटा तक पहुँचते हैं।
synchronized
synchronized कुंजीशब्द यह सुनिश्चित करता है कि एक समय में केवल एक थ्रेड किसी खंड या विधि में प्रवेश करे।
कोड: synchronized विधि
यह synchronized विधि गणक को बढ़ाते समय दौड़ की स्थितियों से बचाती है।
public class Main {
private int count = 0;
public synchronized void increment() {
count++;
}
public static void main(String[] args) throws Exception {
Main obj = new Main();
Thread t1 = new Thread(() -> { for(int i=0;i<1000;i++) obj.increment(); });
Thread t2 = new Thread(() -> { for(int i=0;i<1000;i++) obj.increment(); });
t1.start(); t2.start();
t1.join(); t2.join();
System.out.println("Count = " + obj.count);
}
}
synchronized खंड
आप पूरी विधियों के बजाय केवल महत्वपूर्ण अनुभागों को सिंक्रोनाइज़ कर सकते हैं, जिससे प्रतिस्पर्धा कम होती है।
कोड: synchronized खंड
synchronized खंड केवल वृद्धि वाली पंक्ति की सुरक्षा करता है, जो महत्वपूर्ण अनुभाग है।
public class Main {
private int count = 0;
public void add() {
synchronized(this) {
count++;
}
}
public static void main(String[] args) throws Exception {
Main obj = new Main();
Thread t1 = new Thread(() -> { for(int i=0;i<1000;i++) obj.add(); });
Thread t2 = new Thread(() -> { for(int i=0;i<1000;i++) obj.add(); });
t1.start(); t2.start();
t1.join(); t2.join();
System.out.println("Count = " + obj.count);
}
}
कोड: ReentrantLock
ReentrantLock लचीलेपन के साथ स्पष्ट लॉक-प्रबंधन प्रदान करता है, जैसे tryLock() और निष्पक्षता के विकल्प।
import java.util.concurrent.locks.*;public class Main {
private int count = 0;
private Lock lock = new ReentrantLock();
public void increment() {
lock.lock();
try { count++; }
finally { lock.unlock(); }
}
public static void main(String[] args) throws Exception {
Main obj = new Main();
Thread t1 = new Thread(() -> { for(int i=0;i<1000;i++) obj.increment(); });
Thread t2 = new Thread(() -> { for(int i=0;i<1000;i++) obj.increment(); });
t1.start(); t2.start();
t1.join(); t2.join();
System.out.println("Count = " + obj.count);
}
}
सिंक्रोनाइज़ेशन की जाँच
त्वरित जाँच: synchronized कुंजीशब्द का उद्देश्य क्या है?
पुनरावलोकन
पुनरावलोकन: परस्पर बहिष्करण के लिए synchronized, सूक्ष्म नियंत्रण के लिए खंड और उन्नत परिस्थितियों के लिए स्पष्ट लॉक का उपयोग करें।
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 104
- पाठ
- 374
अक्सर पूछे जाने वाले प्रश्न
क्या “Synchronization और Locks” पाठ निःशुल्क है?
हाँ—“Synchronization और Locks” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“Synchronization और Locks” में मैं क्या सीखूँगा?
shared resources तक access का समन्वय करने के लिए synchronized blocks और explicit locks का उपयोग कीजिए आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 1वाँ पाठ है।
“Synchronization और Locks” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Synchronization और Locks
- Atomic और Concurrent Collections
- Concurrency की सामान्य त्रुटियाँ