interrupt
调用interrupt(),通知线程应该中断了。
这个很有意思,是通知线程应该中断,而不是中断线程。
当通知线程的时候,线程当时的状态不同,反应不同。
1.如果线程正处于正常活动的状态,那么interrupt()会将该线程的中断标志设置为true,被设置中断标志后,线程仍然继续运行。
2.如果是正处于阻塞,或者正常运行之后阻塞了,线程会立即推出被阻塞状态,并抛出一个InterruptedException。
yield
yield也很有意思,当一个线程执行Thread.yield(),会给线程调度器一个当前线程愿意让出CPU使用的暗示,但是线程调度器可能会忽略这个暗示。
网友评论