package com.java;
/**
-
@author jack
-
@create 2019-07-10 23:46
-
线程间通信:
-
wait(),notify(),notifyAll()三个方法实现线程间的通信
-
三个方法都是Object类中的方法,三个方法的调用者必须是同步监视器,且必须相同,三个方法必须都写在同步代码块中
*/
public class PrintNumber {
public static void main(String[] args) {
Number number = new Number() ;
Thread print1 = new Thread(number) ;
print1.setName(“打印机1”);
print1.start();
Thread print2 = new Thread(number) ;
print2.setName(“打印机2”);
print2.start();}
}
class Number implements Runnable {
private int num = 1;@Override
public void run() {
while (true) {
synchronized (this) {
notify();if (num < 100) { System.out.println(Thread.currentThread().getName() + "打印了:" + num); num++ ; } else { break; } try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } }
}
}
*********wait(),notify(),notifyAll()三个方法实现线程间的通信
- 三个方法都是Object类中的方法,三个方法的调用者必须是同步监视器,且必须相同,三个方法必须都写在同步代码块中*********