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