package com.cqck;
public class Phone {
private boolean flag = true;
public void run() {
new Thread(new Runnable() { //接听电话线程
@Override
public void run() {
while (true) {
synchronized (Phone.this) {
if (flag) {
try {
System.out.println("来电提醒,请接听电话");
flag = false;
Phone.this.notify(); //唤醒正在等待的线程
Phone.this.wait(); //等待自己
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}).start();
new Thread(new Runnable() { //接听提醒线程
@Override
public void run() {
while (true) {
synchronized (Phone.this) {
if (!flag) {
try {
System.out.println("通话五秒钟结束了~~");
Thread.sleep(5000);
flag = true;
Phone.this.notify(); //唤醒正在等待的线程
Phone.this.wait(); //等待自己
} catch (Exception e) {
e.printStackTrace();
}
} else {
try {
Phone.this.notify();
Phone.this.wait();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}).start();
}
public static void main(String[] args) {
new Phone().run();
}
}
线程通信--模拟手机接听电话
最新推荐文章于 2022-08-24 23:45:28 发布