线程的中断
1.线程的中断(interrupt)
public void interrupt() //t.interrupt() 打断t线程(设置t线程某给标志位f=true,并不是打断线程的运行)
public boolean isInterrupted() //t.isInterrupted() 查询打断标志位是否被设置(是不是曾经被打断过)
public static boolean interrupted()//Thread.interrupted() 查看“当前”线程是否被打断,如果被打断,恢复标志位
interrupt()不能打断正在竞争锁的线程synchronized
如果想打断正在竞争锁的线程,使用ReentrantLock的lockInterruptibly()
2.优雅的结束线程
1.自然结束(能自然结束就尽量自然结束)
2.stop() suspend() resume() 已废弃不推荐使用,太暴力
3.volatile标志,打断时间不是特别精确
4.interrupt() and isInterrupted(比较优雅)2.线程的中断