inyerrupt打断parl要设置标记位的。
park和unpark
代码
package cn.itcast.n4;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.locks.LockSupport;
import static cn.itcast.n2.util.Sleeper.sleep;
@Slf4j(topic = "c.TestParkUnpark")
public class TestParkUnpark {
public static void main(String[] args) {
Thread t1 = new Thread(() -> {
log.debug("start...");
sleep(2);
log.debug("park...");
LockSupport.park();
log.debug("resume...");
}, "t1");
t1.start();
sleep(1);
log.debug("unpark...");
LockSupport.unpark(t1);
}
}
------------------------04----59----------------------
每一个线程都会关联一个park对象。
park和unpark:https://www.cnblogs.com/set-cookie/p/9582547.html
每个线程关联一个park对象,底层是c实现的。
park是随声携带的背包。
_cond是背包的帐篷。
_counter是背包的备用干粮。
_mutex是对象,里面是一个等待队列_cond,进入等待队列等待。
情况:
调用unpark:
unpark是补充干粮的,park是停下来休息的。
--------------------------04-----60--------------------