多线程(三)Thread

sleep()

调用sleep方法会进入计时等待状态,等时间到了,进入的是就绪状态,不是运行状态

yield()

调用yield方法会先让别的线程执行,但是不确保真正让出

  • 意思是:我有空,可以的话,让你们先执行

join()

调用join方法,会等待该线程执行完毕后才执行别的线程

interrupt()

一般使用的是interrupt来请求终止线程~

  • 要注意的是:interrupt不会真正停止一个线程,它仅仅是给这个线程发了一个信号告诉它,它应该要结束了(明白这一点非常重要!)

  • 也就是说:Java设计者实际上是想线程自己来终止,通过上面的信号,就可以判断处理什么业务了。

  • 具体到底中断还是继续运行,应该由被通知的线程自己处理,这样就可以安全地终止线程

interrupt线程中断还有另外两个方法(检查该线程是否被中断)

  • 静态方法interrupted()-->会清除中断标志位

  • 实例方法isInterrupted()-->不会清除中断标志位

原文地址:https://www.cnblogs.com/yjh1995/p/13514639.html