Avatar ·

ما الفرق بين طريقتي wait() و sleep() في Java؟ أمثلة مع كود

مرحبًا بالجميع! بدأت في تعلم تعدد الخيوط في Java وارتبكت بين طريقتي wait() و sleep(). يبدو أن كلاهما يوقفان تنفيذ الخيط، لكنهما يتصرفان بشكل مختلف. ساعدوني في الفهم. لدي مثال بسيط. أقوم بإنشاء خيطين: واحد ينتج البيانات والآخر يستهلكها. أستخدم sleep() للمزامنة: ```java class Producer extends Thread { private List buffer = new ArrayList<>(); public void run() { for (int i = 0; i < 10; i++) { buffer.add(i); System.out.println("تم إنتاج: " + i); try { Thread.sleep(100); // ننتظر حتى يأخذ المستهلك } catch (InterruptedException e) {} } } public int getValue() { return buffer.remove(0); } } class Consumer extends Thread { private Producer producer; Consumer(Producer p) { producer = p; } public void run() { for (int i = 0; i < 10; i++) {