多线程(三)Thread
sleep()
调用sleep方法会进入计时等待状态,等时间到了,进入的是就绪状态,不是运行状态
yield()
调用yield方法会先让别的线程执行,但是不确保真正让出
-
意思是:我有空,可以的话,让你们先执行
join()
调用join方法,会等待该线程执行完毕后才执行别的线程
interrupt()
一般使用的是interrupt来请求终止线程
-
要注意的是:interrupt不会真正停止一个线程,它仅仅是给这个线程发了一个信号告诉它,它应该要结束了(明白这一点非常重要!)
-
也就是说:Java设计者实际上是想线程自己来终止,通过上面的信号,就可以判断处理什么业务了。
-
具体到底中断还是继续运行,应该由被通知的线程自己处理,这样就可以安全地终止线程
interrupt线程中断还有另外两个方法(检查该线程是否被中断):
-
静态方法interrupted()-->会清除中断标志位
-
实例方法isInterrupted()-->不会清除中断标志位