前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >线程的终止与复位

线程的终止与复位

作者头像
用户7386338
发布2020-07-07 10:10:54
9320
发布2020-07-07 10:10:54
举报
文章被收录于专栏:Java患者Java患者

线程的终止

通过JDK的文档我们可以找到中断线程的api是interrupt()

并且调用interrupted()方法可以判断当前的状态是否中断.

代码语言:javascript
复制
package com.zero.gaoji.no3.day01;

import java.util.concurrent.TimeUnit;

/**
 * @Description: 中断线程的demo
 * @Author: HuangLeTao
 * @Date: 2020/7/1
 */
public class InterruptDemo {

    private static int i;

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(() -> {
            while (!Thread.currentThread().isInterrupted()) {
                i++;
            }
            System.out.println("i = " + i);
        }, "InterruptDemo");
        t1.start();
        TimeUnit.SECONDS.sleep(1);
        t1.interrupt();
    }
}
代码语言:javascript
复制
i = 255564253

简单了解上面的例子,创建一个线程 启动,睡眠一秒钟后中断该线程, 中断该线程之后, 通过isInterrupted()方法得到该线程的状态为true,这个时候会跳出while循环。

线程的复位

Thread可以通过interrupted()方法对线程进行复位。

代码语言:javascript
复制
package com.zero.gaoji.no3.day01;

import java.sql.Time;
import java.util.concurrent.TimeUnit;

/**
 * @Description: 线程的复位
 * @Author: HuangLeTao
 * @Date: 2020/7/1
 */
public class InterruptedDemo {

    private static int i ;

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(() -> {
            while(true) {
                if (Thread.currentThread().isInterrupted()) {
                    System.out.println("复位");
                    Thread.interrupted(); // 复位
                }
            }
        }, "InterruptedDemo");
        t1.start();
        TimeUnit.SECONDS.sleep(1);
        t1.interrupt();

    }

}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java患者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 线程的终止
  • 线程的复位
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档