中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

舞钢市| 洮南市| 西宁市| 江源县| 萍乡市| 通山县| 灵宝市| 桂东县| 胶南市| 广安市| 荥阳市| 临江市| 调兵山市| 康平县| 新绛县| 三江| 凭祥市| 濮阳市| 长阳| 淮南市| 建阳市| 轮台县| 中西区| 宜黄县| 当雄县| 花莲市| 义马市| 乐至县| 和硕县| 长武县| 南投县| 应用必备| 通山县| 石狮市| 龙南县| 黄石市| 遂川县| 庆元县| 通州市| 成安县| 昭平县|