摘要:方法將凍結狀態的線程強制運行,并拋出異常。注意只有在運行狀態的線程才能讀到標識位,最終停止線程。當正在運行的線程都是守護線程時,虛擬機退出。
stop()等方法過時以后,停止線程的唯一方法就是結束run()方法:
開啟多線程運行通常都是循環結構,只要使用標識位控制住循環,就可以讓run()方法結束,即線程結束。
特殊情況:當線程處于了凍結狀態就不會讀取到標記,那么線程就不會停止。
interrupt()方法
將凍結狀態的線程強制運行,并拋出異常InterruptedException。 注意只有在運行狀態的線程才能讀到標識位,最終停止線程。當沒有指定的方式讓線程恢復到運行狀態時,就需要使用該方法對凍結進行消除,并操作標識位讓線程結束。
下面的方法可以配合interrupt()方法結束運行:
class StopThread implements Runnable { public synchronized void run() { while (!Thread.currentThread.isInterrupted())//正常情況執行代碼,一旦線程調用interrupt()方法,返回值會變true,跳出循環 { dosomething(); } } }
補充
守護線程setDaemon()
將該線程標記為守護線程或用戶線程。當正在運行的線程都是守護線程時,Java 虛擬機退出。
該方法必須在啟動線程前調用。
t1.setDaemon(); //t1為線程對象
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66268.html
摘要:和方法用來設置線程是否成為守護線程和判斷線程是否是守護線程。守護線程依賴于創建它的線程,隨它的消亡而消亡。使用提供的方法,提醒線程終止,但是否真正終止由線程自己決定。參考實戰高并發程序設計多線程干貨系列一多線程基礎 一、如何創建多線程 1、繼承Thread類 public class MyThread extends Thread { @Override public ...
摘要:常用于臨時加入線程。重載形式等待被的線程執行完成。當正在運行的線程都是守護線程時,虛擬機退出。為線程對象設置優先級類定義了三個靜態常量停止線程釋放執行線程的執行權,讓重新調度一次,但仍有可能回到該線程。 join()線程當A線程執行到了B線程的join()方法時,A線程就會等待B線程執行完,A線程才會執行。join()常用于臨時加入線程。重載形式:join():等待被join的線程執行...
摘要:最近聽很多面試的小伙伴說,網上往往是一篇一篇的多線程的文章,除了書籍沒有什么學習多線程的一系列文章。將此線程標記為線程或用戶線程。 最近聽很多面試的小伙伴說,網上往往是一篇一篇的Java多線程的文章,除了書籍沒有什么學習多線程的一系列文章。但是僅僅憑借一兩篇文章很難對多線程有系統的學習,而且面試的時候多線程這方面的知識往往也是考察的重點,所以考慮之下決定寫一系列關于Java多線程的文章...
摘要:本人郵箱歡迎轉載轉載請注明網址代碼已經全部托管有需要的同學自行下載類學習線程的開發者首先遇到的第一個類就是通過使用類我們就可以啟動停止中斷一個線程在同一個時間片里可能會有多個線程在執行每個線程都擁有它自己的方法調用堆棧參數和變量每個至少會有 本人郵箱: 歡迎轉載,轉載請注明網址 http://blog.csdn.net/tianshi_kcogithub: https://github...
摘要:實現接口直接被繼承的子類是程序中的執行線程,虛擬機允許應用程序同時運行多個執行線程。如果要恢復目標線程的線程試圖在調用之前鎖定此監視器,則會導致死鎖。線程可以擁有的最大優先級。 Class Thread java.lang.Object java.lang.Thread 實現接口:Runnable直接被繼承的子類:ForkJoinWorkerThread public cl...
閱讀 1314·2021-09-27 13:56
閱讀 2345·2019-08-26 10:35
閱讀 3505·2019-08-23 15:53
閱讀 1855·2019-08-23 14:42
閱讀 1239·2019-08-23 14:33
閱讀 3572·2019-08-23 12:36
閱讀 1953·2019-08-22 18:46
閱讀 1006·2019-08-22 14:06