java线程是协作式,而非抢占式

调用一个线程的interrupt() 方法中断一个线程,并不是强行关闭这个线程,只是跟这个线程打个招呼,将线程的中断标志位置为true,线程是否中断,由线程本身决定。

isInterrupted() 判定当前线程是否处于中断状态。

static方法interrupted() 判定当前线程是否处于中断状态,同时中断标志位改为false。

方法里如果抛出InterruptedException,线程的中断标志位会被复位成false,如果确实是需要中断线程,要求我们自己在catch语句块里再次调用interrupt()。

 

定义一个匿名类,继承了Thread类,定义一个构造函数,把名字传递进去,定义一个新的线程之后,在主线程中停止20毫秒,把线程中止掉,然后while循环里面调用isInterrupted判断是否中止了线程,然后中止线程之后把线程执行完毕,请看图

interrupt和isInterrupted的基本使用方法

 

 

interrupt和isInterrupted的基本使用方法

 

相关文章:

  • 2021-11-09
  • 2021-07-18
  • 2022-12-23
  • 2022-12-23
  • 2022-02-02
  • 2022-01-19
  • 2021-04-15
  • 2022-01-15
猜你喜欢
  • 2021-07-07
  • 2022-12-23
  • 2021-08-08
  • 2021-12-17
  • 2021-10-17
  • 2021-06-11
相关资源
相似解决方案