LockSupport
public static void main(String[] args) {
Thread aaa = new Thread(()->{
System.out.println(Thread.currentThread().getName() + " is running");
LockSupport.park(); // 暂停,如果调用多次,后面的唤醒只能唤醒一次park。
System.out.println(Thread.currentThread().getName() + " is running again");
},"aaa");
aaa.start();
new Thread(()->{
System.out.println(Thread.currentThread().getName() + " is 呼唤 aaa");
LockSupport.unpark(aaa); // 唤醒 无论调用几次unpark,只能发送一张通行证。
}, "bbb").start();
}
还有几种方式:
(1)wait() / notify()方法
(2)await() / signal()方法
经过查询与测试发现,目前为止,LockSupport,park() / unpark() 是最灵活,最优秀的。