LockSupport

LockSupport 提供线程阻塞原

LockSupport.park();//被挂起,线程不会往下运行
LockSupport.unpark(t1);//释放挂起,继续往下走

中断,但不抛出异常。
中断响果是,park()函数的返回,继续执行下面的程序,可以从Thread.interrupted()得到中断

结束挂起两个方式:

执行LockSupport.unpark(t1); 或者是中断


public class LockSupportTest implements Runnable {
    @Override
    public void run() {
        System.out.println("线程:"+Thread.currentThread().getName()+" do");
        LockSupport.park();
        System.out.println("ddd");
        System.out.println(Thread.interrupted());
    }

    public static void main(String[] args) {
        LockSupportTest test = new LockSupportTest();
        Thread t1 = new Thread(test);
        t1.start();
       // LockSupport.unpark(t1);
        t1.interrupt();
    }
}

当我们在主方法中把

t1.interrupt();和LockSupport.unpark(t1); 都注释后,线程打印:线程:Thread-0 do将一直等待,此时被挂起。
当我们执行t1.interrupt();时线程继续执行打印:
线程:Thread-0 do
ddd
true
当我们执行
LockSupport.unpark(t1)的时候打印:
线程:Thread-0 do
ddd
false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值