LockSupport是优化版的等待和唤醒机制
底层原理
调用的是底层Unsafe类的native 方法
每个线程都最多只会有一个许可证关联,调用多次不会累加
调用一次park 会消费permit
Thread a = new Thread(() -> {
try {
TimeUnit.SECONDS.sleep(3L);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "----come in ");
LockSupport.park();
System.out.println(Thread.currentThread().getName() + "----被唤醒");
}, "AA");
a.start();
new Thread(() -> {
System.out.println(Thread.currentThread().getName() + "----come in ");
LockSupport.unpark(a);
System.out.println(Thread.currentThread().getName() + "----通知了");
}, "BB").start();
原文:https://www.cnblogs.com/zhu12/p/15225697.html