Kaedah wait(), notify() dan notifyAll() adalah penting kepada model konkurensi Java. Mereka tergolong dalam kelas Objek, yang merupakan punca hierarki kelas di Jawa. Ini bermakna setiap kelas dalam Java mewarisi kaedah ini daripada kelas Objek.
Kelas Objek ialah kelas super bagi semua kelas di Jawa. Ia menyediakan satu set kaedah asas yang diwarisi oleh setiap kelas, termasuk toString(), equals() dan hashCode(). Kaedah wait(), notify() dan notifyAll() juga merupakan sebahagian daripada kelas ini, membolehkan urutan berkomunikasi dan menyelaraskan aktiviti mereka.
Untuk memahami cara kaedah ini berfungsi, mari lihat beberapa contoh praktikal.
Berikut ialah contoh mudah yang menunjukkan penggunaan kaedah ini:
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(); } }
Dalam contoh di atas:
Anda akan melihat output berikut yang menunjukkan operasi pengeluar dan pengguna:
Resource produced. Resource consumed. ...
Output ini menunjukkan cara wait(), notify() dan notifyAll() menyelaraskan interaksi pengeluar-pengguna.
Dengan memahami kelas mana kaedah wait(), notify() dan notifyAll() tergolong dan cara ia berfungsi, anda boleh mengurus dengan berkesan komunikasi antara benang dalam aplikasi Java anda. Kaedah ini penting untuk memastikan rangkaian bekerjasama dan berkongsi sumber dengan cekap.
Jika anda mempunyai sebarang pertanyaan atau memerlukan penjelasan lanjut, sila tinggalkan komen di bawah!
Baca siaran lebih lanjut di : Kelas Manakah Kaedah Tunggu(), notify(), dan notifyAll() Milik?
Atas ialah kandungan terperinci Kelas Manakah Kaedah wait(), notify(), dan notifyAll() Milik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!