package com.nanjing.gulimall.zhouyimo.test;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.LockSupport;
/**
* @author zhou
* @version 1.0
* @date 2023/10/16 9:11 下午
*/
public class LockSupportDemo {
public static void main(String[] args) {
/**
* t1 -----------come in
* t2 ----------发出通知
* t1 ----------被唤醒
*/
Thread t1 = new Thread(() -> {
System.out.println(Thread.currentThread().getName() + "\t -----------come in");
LockSupport.park();
System.out.println(Thread.currentThread().getName() + "\t ----------被唤醒");
}, "t1");
t1.start();
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Thread(() -> {
LockSupport.unpark(t1);
System.out.println(Thread.currentThread().getName() + "\t ----------发出通知");
}, "t2").start();
}
}
t1 -----------come in
t2 ----------发出通知
t1 ----------被唤醒
LockSupport-park和unpark编码实战
最新推荐文章于 2024-11-11 00:03:55 发布
本文深入探讨了Java并发库中的LockSupport工具类,重点分析了park()和unpark()方法的使用场景及工作原理。通过实例代码展示了如何在多线程环境中有效地控制线程的暂停与唤醒,帮助提升并发程序的性能和可控性。
摘要由CSDN通过智能技术生成