تعتبر أساليب wait() وnotify() وnotifyAll() جزءًا لا يتجزأ من نموذج التزامن في Java. إنهم ينتمون إلى فئة Object، وهي أصل التسلسل الهرمي للفئة في Java. هذا يعني أن كل فئة في Java ترث هذه الأساليب من فئة Object.
فئة الكائن هي الطبقة الفائقة لجميع الفئات في Java. يوفر مجموعة من الأساليب الأساسية التي ترثها كل فئة، بما في ذلك toString()، equals()، وhashCode(). تعد أساليب wait()، وnotify()، وnotifyAll() أيضًا جزءًا من هذه الفئة، مما يمكّن سلاسل الرسائل من التواصل وتنسيق أنشطتها.
لفهم كيفية عمل هذه الأساليب، دعونا نلقي نظرة على بعض الأمثلة العملية.
إليك مثال بسيط يوضح استخدام هذه الطرق:
class SharedResource { private boolean available = false; public synchronized void consume() throws InterruptedException { while (!available) { wait(); // Wait until the resource is available } // Consume the resource System.out.println("Resource consumed."); available = false; notify(); // Notify that the resource is now unavailable } public synchronized void produce() { // Produce the resource available = true; System.out.println("Resource produced."); notify(); // Notify that the resource is available } } public class Main { public static void main(String[] args) { SharedResource resource = new SharedResource(); Thread producer = new Thread(() -> { try { while (true) { Thread.sleep(1000); // Simulate time to produce resource.produce(); } } catch (InterruptedException e) { e.printStackTrace(); } }); Thread consumer = new Thread(() -> { try { while (true) { resource.consume(); Thread.sleep(2000); // Simulate time to consume } } catch (InterruptedException e) { e.printStackTrace(); } }); producer.start(); consumer.start(); } }
في المثال أعلاه:
سترى المخرجات التالية التي تشير إلى عمليات المنتج والمستهلك:
Resource produced. Resource consumed. ...
يوضح هذا الإخراج كيفية تنسيق wait() وnotify() وnotifyAll() للتفاعل بين المنتج والمستهلك.
من خلال فهم الفئة التي تنتمي إليها أساليب wait()، وnotify()، وnotifyAll() وكيفية عملها، يمكنك الإدارة بفعالية التواصل بين الخيوط في تطبيقات Java الخاصة بك. تعتبر هذه الأساليب ضرورية لضمان تعاون الخيوط ومشاركة الموارد بكفاءة.
إذا كان لديك أي أسئلة أو كنت بحاجة إلى مزيد من التوضيح، فلا تتردد في ترك تعليق أدناه!
اقرأ المزيد من المشاركات على : ما هي الفئة التي تنتمي إليها طرق الانتظار () وإخطار () وإخطار الكل ()؟
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3