LockSupport的使用
作者:互联网
LockSupport
参考文档:https://blog.csdn.net/shijiejiujiuba/article/details/79034307
神奇的使用的东西
/**
* @Description 简单介绍一下LockSupport的使用 https://blog.csdn.net/shijiejiujiuba/article/details/79034307
* @Author liguang
* @Date 2022/03/10/00:15
*/
public class ThreadWattingTestOne {
public static void main(String[] args) {
final Thread thread1 = new Thread(() -> {
int i = 0;
do {
i++;
} while (i != 10000);
LockSupport.unpark(Thread.currentThread());
System.out.println("hello,world");
LockSupport.park();
System.out.println("hello,park");
LockSupport.park();
});
thread1.start();
try {
thread1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* @Description 让线程之间进行交互
* @Author liguang
* @Date 2022/03/10/00:15
*/
public class ThreadWattingTestTwo {
public static void main(String[] args) {
Thread thread1 = new Thread(() -> {
LockSupport.park();
System.out.println("hello,threadone............");
});
try {
thread1.start();
Thread.sleep(10000);
LockSupport.unpark(thread1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* @Description 线程如果因为调用park而阻塞的话,能够响应中断请求(中断状态被设置成true),但是不会抛出InterruptedException。
* @Author liguang
* @Date 2022/03/10/00:15
*/
public class ThreadWattingThree {
public static void main(String[] args) {
Thread thread1 = new Thread(() -> {
LockSupport.park();
System.out.println("hello,threadone............");
});
try {
thread1.start();
Thread.sleep(10000);
thread1.interrupt();
System.out.println("hello,world");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
处于waitting状态不会消耗CPU,但是CPU的切换需要消耗CPU
https://baijiahao.baidu.com/s?id=1712014506366682907&wfr=spider&for=pc
标签:Thread,park,LockSupport,thread1,使用,println,public 来源: https://www.cnblogs.com/likeguang/p/15987803.html