线程打断 优雅的结束一个线程

80 阅读1分钟

线程打断

interrupt()

打断某个线程(设置标志位)

isInterrupted()

查询某个线程是否被打断过(查询标志位)

static interrupted()

查询当前线程是否被打断过,并重置打断标志


线程结束

stop()结束线程stop结束的时候,会强行释放全部的锁,很容易导致数据不同步的问题,所以已经弃用
t.suspend() t.resume()暂停结束线程暂停时,锁不会被释放,会产生死锁问题,已经被废弃
volatile关键字volatile是表示防止指令重排,让线程间可见,所以设置volatile标识来让线程结束
interrupt标志位可以用interrupt表示来使线程结束。优点:相比起volatile,可以处理线程阻塞时,遇到interrupt抛出的异常