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

Chúng ta có thể đồng bộ hóa một phương thức run () trong Java không?


, chúng ta có thể đồng bộ hóa phương thức run () trong Java, nhưng không bắt buộc vì phương thức này chỉ được thực thi bởi một luồng duy nhất. Do đó đồng bộ hóa không cần thiết cho run () phương pháp. Cách thực hành tốt là đồng bộ hóa phương pháp không tĩnh của lớp khác vì nó được gọi bởi nhiều luồng cùng một lúc.

Ví dụ

public class SynchronizeRunMethodTest implements Runnable {
   public synchronized void run() {
      System.out.println(Thread.currentThread().getName() + " is starting");
      for(int i=0; i < 5; i++) {
         try {
            Thread.sleep(1000);
            System.out.println(Thread.currentThread().getName() + " is running");
         } catch(InterruptedException ie) {
            ie.printStackTrace();
         }
      }
      System.out.println(Thread.currentThread().getName() + " is finished");
   }
   public static void main(String[] args) {
      SynchronizeRunMethodTest test = new SynchronizeRunMethodTest();
      Thread t1 = new Thread(test);
      Thread t2 = new Thread(test);
      t1.start();
      t2.start();
   }
}

Đầu ra

Thread-0 is starting
Thread-0 is running
Thread-0 is running
Thread-0 is running
Thread-0 is running
Thread-0 is running
Thread-0 is finished
Thread-1 is starting
Thread-1 is running
Thread-1 is running
Thread-1 is running
Thread-1 is running
Thread-1 is running
Thread-1 is finished