并发编程之四:LockSupport下的park和unpark方法

LockSupport提供了park和unpark静态方法用于阻塞和解除阻塞当前进程:

public class LockSupport {
    // 解除阻塞时,需要指定线程
    public static void unpark(Thread thread);
    public static void park();
}

示例:

    @Test
    public void test7() throws InterruptedException {
        Thread t1 = new Thread(() -> {
            log.debug("调用park");
            LockSupport.park();
            log.debug("t1 继续执行");
        }, "t1");
        t1.start();
        Thread.sleep(1000);
        LockSupport.unpark(t1);
        log.debug("解除t1阻塞");
        log.debug("测试结束");
        Thread.sleep(1000);
    }

执行结果:

10:37:25.031 com.ruizhe.springcloud.ConcurrentTest [t1] - 调用park
10:37:26.031 com.ruizhe.springcloud.ConcurrentTest [t1] - t1 继续执行
10:37:26.031 com.ruizhe.springcloud.ConcurrentTest [main] - 解除t1阻塞
10:37:26.031 com.ruizhe.springcloud.ConcurrentTest [main] - 测试结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值