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();