作用
interrupt方法是Thread类的实例方法,哪个实例调用,将哪个实例线程的中断状态标识置为true,仅此而已。
应用
interrupt方法只是一个通知,本身没啥用,需要配合其他方法一起使用,如实例方法isInterrupted、静态方法interrupted和一些可中断的阻塞方法。
实例方法isInterrupted,检查实例线程的中断状态标识。如果实例线程处于中断状态,则返回true;否则返回false。如下图所示:
isInterrupted方法静态方法interrupted,检查当前线程的中断状态标识,并把当前线程的中断状态标识置为false。注意,在哪个线程里面调用interrupted方法(和哪个实例调用无关),就检查哪个线程的中断状态,并把该线程的中断状态标识置为false。
interrupted方法可中断的阻塞方法,如sleep、wait等,当调用完这些方法,线程会出于阻塞状态,如果该线程被其他线程将中断状态标识置为true,则该线程 会从阻塞状态醒来,抛出InterruptedException,并将该线程的中断状态标识置为false。
网友评论