Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để các luồng giao tiếp với nhau trong Java?

Giao tiếp giữa các chuỗi i nvolves giao tiếp của các chủ đề với nhau. Ba phương pháp được sử dụng để triển khai giao tiếp giữa các luồng trong Java

chờ ()

Phương pháp này khiến chuỗi hiện tại giải phóng khóa . Điều này được thực hiện cho đến khi một khoảng thời gian cụ thể trôi qua hoặc một chuỗi khác gọi thông báo () hoặc allowAll () cho đối tượng này.

notification ()

Phương pháp này đánh thức một chuỗi duy nhất ngoài nhiều luồng trên màn hình của đối tượng hiện tại. Việc lựa chọn chủ đề là tùy ý.

allowAll ()

Phương pháp này đánh thức tất cả các chuỗi trên màn hình của đối tượng hiện tại.

Ví dụ

class BankClient {
   int balAmount = 5000;
   synchronized void withdrawMoney(int amount) {
      System.out.println("Withdrawing money");
      balAmount -= amount;
      System.out.println("The balance amount is: " + balAmount);
   }
   synchronized void depositMoney(int amount) {
      System.out.println("Depositing money");
      balAmount += amount;
      System.out.println("The balance amount is: " + balAmount);
      notify();
   }
}
public class ThreadCommunicationTest {
   public static void main(String args[]) {
      final BankClient client = new BankClient();
      new Thread() {
         public void run() {
            client.withdrawMoney(3000);
         }
      }.start();
      new Thread() {
         public void run() {
           client.depositMoney(2000);
         }
      }.start();
   }
}

Đầu ra

Withdrawing money
The balance amount is: 2000
Depositing money
The balance amount is: 4000