LockSupport
LockSupport 是一个非常方便实用的线程阻塞工具,它可以在线程内任意位置让线程阻塞,
LockSupport 的静态方法park()可以阻塞当前线程,类似的还有parkNanos(),parkUntil()等方法,它们实现了一个限时的等待.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| public class LockSupportDemo { public static Object u=new Object(); static ChangeObjectThread t1 =new ChangeObjectThread("t1"); static ChangeObjectThread t2 =new ChangeObjectThread("t2"); public static class ChangeObjectThread extends Thread { public ChangeObjectThread(String name) { super.setName(name); } public void run() { synchronized(u) { System.out.println("in "+getName()); LockSupport.park(); } } } public static void main(String[] args) throws Exception { t1.start(); Thread.sleep(1000); t2.start(); System.out.println("123"); LockSupport.unpark(t1); LockSupport.unpark(t2); t1.join(); t2.join(); } }
|