①共同点:都是Thread类提供的方法
②不同点:
interrupt()和isInterrupted()是实例方法,而interrupted()是静态方法;
interrupt()用于中断线程,返回值是void,而isInterrupted()和interrupted()方法的返回值类型是boolean;
isInterrupted()的作用是获取线程的中断状态;
interrupted()的作用:判断当前线程是否被中断,如果是,清除中断标记,返回true;否则返回false
当前线程的含义:
在main()方法中,当前线程指的是主线程,也就是main线程;
只有在创建的线程的run()方法中获取的当前线程才是创建的线程,如Thread-0、Thread-1。
通过以下代码加深对当前线程的理解,下面代码的输出结果是false、true。
/**
* @author heyunlin
* @version 1.0
*/
public class ThreadMethodExample {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("run()...");
}
});
thread.start();
thread.interrupt();
System.out.println(thread.interrupted());
System.out.println(thread.isInterrupted());
}
}
main()方法中,当前线程是主线程,也就是main方法对应的线程,而主线程并没有被中断。