interrupt()、interrupted()和isInterruptd()的区别

本文主要介绍了Java中Thread类的interrupt(),isInterrupted(),和interrupted()方法的区别,指出interrupt()用于中断线程,isInterrupted()检查中断状态,interrupted()则判断并清除中断标记。同时强调了在不同上下文中的当前线程概念。
摘要由CSDN通过智能技术生成

①共同点:都是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方法对应的线程,而主线程并没有被中断。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值