Java教程

java并发编程-park/unpark

本文主要是介绍java并发编程-park/unpark,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基本使用

它们是LockSupport类中的方法

// 暂停当前线程
LockSupport.park();
// 恢复某个线程的运行
LockSupport.unpark(Thread thread);

unpark即可以在park之后调用也可以在park之前调用,unpark的调用跟顺序无关。

使用示例

@Slf4j
public class ParkTest {
    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(() -> {
            log.info("t1 start");
            try {
                TimeUnit.SECONDS.sleep(3);
                log.info("t1 park");
                LockSupport.park();
                log.info("t1 resume ... ");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }, "t1");
        t1.start();
        TimeUnit.SECONDS.sleep(10);
        log.info("main thread resume t1");
        LockSupport.unpark(t1);
    }
}
这篇关于java并发编程-park/unpark的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!