适用场景
主线程开启一个子线程执行任务,子线程运行完毕后,主线程需要执行一些数据清理等步骤,java中可以使用synchronized实现。
关键字
java synchronized notifyAll wait
源代码
import java.util.concurrent.TimeUnit;
public class SyncProcess {
private static Object o = new Object();
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println("子线程开始。。。");
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("子线程运行完毕。");
synchronized (o) {
o.notifyAll();
}
}
}).start();
synchronized (o) {
try {
System.out.println("主线程等待中。。。");
o.wait();
System.out.println("主线程结束。");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}