Use Wait & Notify to Implement Two Threads Run Alternatively

public class ThreadCommunication {
public static void main(String[] args) {
Business business = new Business();
new Thread(() -> {
while (true) {
try {
business.thread1();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
new Thread(() -> {
while (true) {
try {
business.thread2();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
} class Business {
private boolean thread1First = true; public synchronized void thread1() throws InterruptedException {
while (!thread1First) {
this.wait();
}
thread1First = !thread1First;
this.notify();
System.out.println("thread 1 is called!!!");
Thread.sleep(1000);
} public synchronized void thread2() throws InterruptedException {
while (thread1First) {
this.wait();
} thread1First = !thread1First;
this.notify();
System.out.println("thread 2 is invoked");
Thread.sleep(1000);
}
}
上一篇:js学习笔记6----作用域及解析机制


下一篇:Centos7下关于系统用户密码规则-运维笔记