package org.miqi.thread.synchronous.control;
import java.util.concurrent.locks.LockSupport;
public class LockSupportDemo {
public static Object u = new Object();
public static ChangeObjectThread t1 = new ChangeObjectThread("t1");
public static ChangeObjectThread t2 = new ChangeObjectThread("t2");
public static class ChangeObjectThread extends Thread{
public ChangeObjectThread(String threadName){
super.setName(threadName);
}
@Override
public void run() {
synchronized(u){
System.out.println(getName()+" get lock...");
LockSupport.park();
System.out.println(getName()+" is parking...");
}
System.out.println(getName()+" unpark...");
try {
Thread.sleep(1000);
System.out.println(getName()+" is over...");
} catch (InterruptedException e) {
}
}
}
public static void main(String args[]) throws InterruptedException {
t1.start();
Thread.sleep(100);
t2.start();
LockSupport.unpark(t1);
LockSupport.unpark(t2);
t1.join();
t2.join();
System.out.println("main thread is over...");
}
}
JDK并发包---(11)线程阻塞工具类:LockSupport
最新推荐文章于 2024-07-24 03:47:28 发布
本文提供了一个使用 Java 中 LockSupport 类的示例程序。通过两个线程 t1 和 t2 的运行,展示了如何利用 LockSupport.park() 和 LockSupport.unpark() 方法来控制线程的状态,实现线程间的同步。


1万+

被折叠的 条评论
为什么被折叠?



