最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中如何停止一個正在運行的線程

 更新時間:2025年01月08日 14:31:29   作者:夜夜流光相皎潔_小寧  
文章介紹了三種停止正在運行線程的方法:設(shè)置標(biāo)志位、利用中斷標(biāo)志位和利用InterruptedException異常,這些方法可以幫助我們有效地控制線程的執(zhí)行

如何停止一個正在運行的線程

1)設(shè)置標(biāo)志位

如果線程的run方法中執(zhí)行的是一個重復(fù)執(zhí)行的循環(huán),可以提供一個標(biāo)記來控制循環(huán)是否繼續(xù)

代碼示例:

public class FunDemo02 {

    /**
     * 練習(xí)2:設(shè)計一個線程:運行10秒后被終止(掌握線程的終止方法)
     * @param args
     */
    public static void main(String[] args)  throws Exception{
        MyRunable02 runnable = new MyRunable02();
        new Thread(runnable).start();
        Thread.sleep(10000); // 主線程休眠10秒鐘
        runnable.flag = false;
        System.out.println("main、  end ...");
    }
}

class MyRunable02 implements Runnable{

    boolean flag = true;

    @Override
    public void run() {
        while(flag){
            try {
                Thread.sleep(1000);
                System.out.println(new Date());
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println(Thread.currentThread().getName() + " 執(zhí)行完成");
    }
}

2)利用中斷標(biāo)志位

在線程中有個中斷的標(biāo)志位,默認是false,當(dāng)我們顯示的調(diào)用 interrupted方法或者isInterrupted方法是會修改標(biāo)志位為true。

我們可以利用此來中斷運行的線程。

代碼示例:

package com.bobo.fundemo;

public class FunDemo07 extends Thread{

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new FunDemo07();
        t1.start();
        Thread.sleep(3000);
         t1.interrupt(); // 中斷線程 將中斷標(biāo)志由false修改為了true
        // t1.stop(); // 直接就把線程給kill掉了
        System.out.println("main .... ");
    }

    @Override
    public void run() {
        System.out.println(this.getName() + " start...");
        int i = 0 ;
        // Thread.interrupted() 如果沒有被中斷 那么是false 如果顯示的執(zhí)行了interrupt 方法就會修改為 true
        while(!Thread.interrupted()){
            System.out.println(this.getName() + " " + i);
            i++;
        }

        System.out.println(this.getName()+ " end .... ");

    }
}

3)利用InterruptedException異常

如果線程因為執(zhí)行join(),sleep()或者wait()而進入阻塞狀態(tài),此時要想停止它,可以讓他調(diào)用interrupt(),程序會拋出InterruptedException異常。

我們利用這個異??梢詠斫K止線程。

package com.bobo;

public class FunDemo08 extends Thread{

    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new FunDemo08();
        t1.start();
        Thread.sleep(3000);
         t1.interrupt(); // 中斷線程 將中斷標(biāo)志由false修改為了true
        // t1.stop(); // 直接就把線程給kill掉了
        System.out.println("main .... ");
    }

    @Override
    public void run() {
        System.out.println(this.getName() + " start...");
        int i = 0 ;
        // Thread.interrupted() 如果沒有被中斷 那么是false 如果顯示的執(zhí)行了interrupt 方法就會修改為 true
         while(!Thread.interrupted()){
        //while(!Thread.currentThread().isInterrupted()){
             try {
                 Thread.sleep(10000);
             } catch (InterruptedException e) {
                 e.printStackTrace();
				 break;
             }
             System.out.println(this.getName() + " " + i);
            i++;
        }

        System.out.println(this.getName()+ " end .... ");

    }
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 動態(tài)模擬操作系統(tǒng)進程調(diào)度算法

    Java 動態(tài)模擬操作系統(tǒng)進程調(diào)度算法

    這篇文章主要介紹了采用java語言編程模擬N個進程采用動態(tài)高優(yōu)先權(quán)優(yōu)先進程調(diào)度算法。文中代碼具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2021-12-12
  • Java中的HashSet、LinkedHashSet集合解析

    Java中的HashSet、LinkedHashSet集合解析

    這篇文章主要介紹了Java中的HashSet、LinkedHashSet集合解析,與HashSet不同的是,LinkedHashSet在內(nèi)部使用了一個雙向鏈表來維護元素的順序,因此它可以保持元素的插入順序,這使得LinkedHashSet在需要保持元素順序的場景下非常有用,需要的朋友可以參考下
    2023-11-11
  • SSM使用mybatis分頁插件pagehepler實現(xiàn)分頁示例

    SSM使用mybatis分頁插件pagehepler實現(xiàn)分頁示例

    本篇文章主要介紹了SSM使用mybatis分頁插件pagehepler實現(xiàn)分頁示例,使用分頁插件的原因,簡化了sql代碼的寫法,實現(xiàn)較好的物理分頁,非常具有實用價值,需要的朋友可以參考下
    2018-03-03
  • Java 圖片復(fù)制功能實現(xiàn)過程解析

    Java 圖片復(fù)制功能實現(xiàn)過程解析

    這篇文章主要介紹了Java 圖片復(fù)制功能實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • JavaIO?BufferedReader和BufferedWriter使用及說明

    JavaIO?BufferedReader和BufferedWriter使用及說明

    這篇文章主要介紹了JavaIO?BufferedReader和BufferedWriter使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java中MD5的使用代碼示例

    Java中MD5的使用代碼示例

    這篇文章主要給大家介紹了關(guān)于Java中MD5的使用示例,MD5加密是一種常見的加密方式,我們經(jīng)常用在保存用戶密碼和關(guān)鍵信息上,需要的朋友可以參考下
    2023-08-08
  • Java current并發(fā)包超詳細分析

    Java current并發(fā)包超詳細分析

    current并發(fā)包、在JDK1.5之前Java并沒有提供線程安全的一些工具類去操作多線程,需要開發(fā)人員自行編寫實現(xiàn)線程安全,但仍然無法完全避免低性能、死鎖、資源管理等問題。在JDK1.5時新增了java.util.current并發(fā)包,其中提供了許多供我們使用的并發(fā)編程工具類
    2023-02-02
  • 詳解最簡單易懂的Spring Security 身份認證流程講解

    詳解最簡單易懂的Spring Security 身份認證流程講解

    這篇文章主要介紹了詳解最簡單易懂的Spring Security 身份認證流程講解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 基于Java實現(xiàn)簡易的局域網(wǎng)對話系統(tǒng)

    基于Java實現(xiàn)簡易的局域網(wǎng)對話系統(tǒng)

    這篇文章主要介紹了基于Java實現(xiàn)的簡易的局域網(wǎng)對話系統(tǒng),文中的示例代碼對我們學(xué)習(xí)Java有一定的幫助,感興趣的小伙伴快來跟隨小編一起學(xué)習(xí)一下吧
    2021-12-12
  • java外部類與內(nèi)部類簡介

    java外部類與內(nèi)部類簡介

    這篇文章簡單介紹了java外部類與內(nèi)部類,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12

最新評論

于都县| 太康县| 正定县| 九龙县| 镶黄旗| 万宁市| 枣强县| 乌兰浩特市| 博客| 巨野县| 顺平县| 翁牛特旗| 交城县| 信宜市| 当雄县| 逊克县| 潜山县| 张家界市| 西贡区| 东平县| 南充市| 叶城县| 宁安市| 蓝田县| 会昌县| 措勤县| 普定县| 平南县| 泗水县| 沙湾县| 双鸭山市| 库车县| 射洪县| 黄骅市| 镇原县| 宜章县| 临江市| 当雄县| 二手房| 界首市| 宜州市|