91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何停止一個線程

發布時間:2020-09-17 10:24:30 來源:億速云 閱讀:170 作者:小新 欄目:編程語言

小編給大家分享一下java如何停止一個線程,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

如何停止java的線程一直是一個開發多線程程序常遇到的一個問題。也有好多人問過我,所以今天在這里總結一下希望可以讓更多的人知道在java中如何安全的結束一個正在運行的線程。

在Java的多線程編程中,java.lang.Thread類型包含了一些列的方法start(), stop(), stop(Throwable) and suspend(), destroy() and resume()。通過這些方法,我們可以對線程進行方便的操作,但是這些方法中,只有start()方法得到了保留。

在JDK幫助文檔以及Sun公司的一篇文章《Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 》中都講解了舍棄這些方法的原因。

那么,我們究竟應該如何停止線程呢?

用共享變量的方式
在這種方式中,之所以引入共享變量,是因為該變量可以被多個執行相同任務的線程用來作為是否中斷的信號,通知中斷線程的執行。

public class ThreadFlag extends Thread 
{ 
    public volatile boolean exit = false; 
 
    public void run() 
    { 
        while (!exit); 
    } 
    public static void main(String[] args) throws Exception 
    { 
        ThreadFlag thread = new ThreadFlag(); 
        thread.start(); 
        sleep(3000); // 主線程延遲3秒 
        thread.exit = true;  // 終止線程thread 
        thread.join(); 
        System.out.println("線程退出!"); 
    } 
}

在上面代碼中定義了一個退出標志exit,當exit為true時,while循環退出,exit的默認值為false。在定義exit時,使用了一個Java關鍵字volatile,這個關鍵字的目的是使exit同步,也就是說在同一時刻只能由一個線程來修改exit的值。

以上是java如何停止一個線程的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正蓝旗| 福安市| 太湖县| 平湖市| 连云港市| 星座| 离岛区| 错那县| 木里| 长宁区| 石棉县| 长治市| 团风县| 巴马| 莫力| 虹口区| 铜陵市| 舞钢市| 玉林市| 虞城县| 黄石市| 尉氏县| 襄垣县| 普洱| 龙里县| 车致| 萨迦县| 大冶市| 丹阳市| 疏勒县| 鹰潭市| 盐山县| 双峰县| 临西县| 珠海市| 门源| 绿春县| 清水河县| 天峻县| 海淀区| 呈贡县|