ماذا تعني الكلمة المفتاحية synchronized في Java؟ اشرح بكلمات بسيطة مع أمثلة
مرحبًا أيها الزملاء! أنا مبتدئ في Java ولا أستطيع فهم ما تفعله الكلمة المفتاحية `synchronized`. قرأت الوثائق لكنها تبدو معقدة جدًا.
لدي كلاس بسيط `Counter` يزيد العداد في عدة خيوط (threads). أتوقع أن كل خيط سيضيف 1000 إلى العداد الإجمالي، لكن النتيجة دائمًا مختلفة: تارة 1987، وتارة 2003، مع أنه يجب أن تكون بالضبط 2000 (خيطان كل منهما 1000). إليك الكود الخاص بي:
```java
public class Counter {
private int count = 0;
public void increment() {
count++;
}
public int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) throws InterruptedException {
Counter counter = new Counter();
Thread t1 = new Thread(() -> {
for (int i = 0; i < 1000; i++) {
counter.increment();
}
});
Thread t2 = new Thread(() -> {
for (int i = 0; i < 1000; i++) {
counte