1、park
LockSupport.park();//让线程停下来
2、打断park
打断之后在使用park停止相思程就不行了,要想使park在生效,要使interrupted()标记为false.
使用isInterrupted()方法,会抹去当前的状态,就标记就成false了,park也就生效了。
Threadt1=newThread(() ->{
log.debug("park...");
LockSupport.park();
log.debug("unpark...");
log.debug("打断状态:{}", Thread.currentThread().isInterrupted());
}, "t1");
t1.start();
sleep(0.5);
t1.interrupt();
Threadt1=newThread(() ->{log.debug(“park…”);LockSupport.park();log.debug(“unpark…”);log.debug(“打断状态:{}”, Thread.currentThread().isInterrupted()); }, “t1”);t1.start();sleep(0.5);t1.interrupt();
3、过时的方法
- stop():停止线程运行
- suspend():挂起/暂停线程运行
- resume():恢复线程运行
都会破坏同步代码块,容易导致线程死锁。
4、守护线程
setDaemon(true):谁调用,谁就是去守护的。主线程停止了,那么调用的那个线程也就停止了。