java高并发、多线程(八)
public class LockSupportTest {
public synchronized void m1(){
System.out.println("m1 start");
LockSupport.park();
System.out.println("m1 end");
}
public synchronized void m2(){
System.out.println("m2 start");
System.out.println("m2 end");
}
public static void main(String[] args) {
LockSupportTest lt = new LockSupportTest();
Thread t1 = new Thread(lt::m1, "Thread-1");
Thread t2 = new Thread(lt::m2, "Thread-2");
t1.start();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
t2.start();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("唤醒t1");
LockSupport.unpark(t1);
}
}
运行结果:
结论:LockSupport.park()不会释放锁资源