摘要:和線程停止相關(guān)的三個方法中斷線程。另外對于返回的線程不起作用。判斷線程中斷狀態(tài),但不會清除線程中斷狀態(tài)。線程停止的幾種情況使用退出標(biāo)記,方法執(zhí)行完畢,線程正常退出。在線程內(nèi)部使用結(jié)束線程。
和線程停止相關(guān)的三個方法
/* 中斷線程。如果線程被wait(),join(),sleep()等方法阻塞,調(diào)用interrupt()會清除線程中斷狀態(tài),并收到InterruptedException異常。另外interrupt();對于isAlive()返回false的線程不起作用。 */ public void interrupt(); /* 靜態(tài)方法,判斷線程中斷狀態(tài),并且會清除線程的中斷狀態(tài)。所以連續(xù)多次調(diào)用該方法,第二次之后必定返回false。另外,isAlive()用于判斷線程是否處于存活狀態(tài),如果isAlive()返回false,interrupted()也必定返回false。 */ public static boolean interrupted(); /* 判斷線程中斷狀態(tài),但不會清除線程中斷狀態(tài)。另外,isAlive()用于判斷線程是否處于存活狀態(tài),如果isAlive()返回false,interrupted()也必定返回false。 */ public boolean isInterrupted();
線程停止的幾種情況:
1: 使用退出標(biāo)記,run方法執(zhí)行完畢,線程正常退出。
2: 使用stop()方法,已過時的方法,不推薦。
3: 使用interrupt()方法中斷線程。
多帶帶調(diào)用這個方法并不能中斷線程,只是打了一個中斷狀態(tài)的標(biāo)記?;蛘哒f是將線程狀態(tài)更改為中斷狀態(tài)。
中斷線程可以通過以下幾種方法。
在線程內(nèi)部拋出異常。
在線程內(nèi)部使用return結(jié)束線程。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/77655.html
摘要:最近聽很多面試的小伙伴說,網(wǎng)上往往是一篇一篇的多線程的文章,除了書籍沒有什么學(xué)習(xí)多線程的一系列文章。將此線程標(biāo)記為線程或用戶線程。 最近聽很多面試的小伙伴說,網(wǎng)上往往是一篇一篇的Java多線程的文章,除了書籍沒有什么學(xué)習(xí)多線程的一系列文章。但是僅僅憑借一兩篇文章很難對多線程有系統(tǒng)的學(xué)習(xí),而且面試的時候多線程這方面的知識往往也是考察的重點(diǎn),所以考慮之下決定寫一系列關(guān)于Java多線程的文章...
摘要:和方法用來設(shè)置線程是否成為守護(hù)線程和判斷線程是否是守護(hù)線程。守護(hù)線程依賴于創(chuàng)建它的線程,隨它的消亡而消亡。使用提供的方法,提醒線程終止,但是否真正終止由線程自己決定。參考實(shí)戰(zhàn)高并發(fā)程序設(shè)計多線程干貨系列一多線程基礎(chǔ) 一、如何創(chuàng)建多線程 1、繼承Thread類 public class MyThread extends Thread { @Override public ...
摘要:主線程名我們啟動的一個程序可以理解為一個進(jìn)程一個進(jìn)程中包含一個主線程線程可以理解為一個子任務(wù)中可以通過下面代碼來獲取默認(rèn)的主線程名運(yùn)行結(jié)果為這是線程的名字并不是方法通過此線程來執(zhí)行方法而已兩種方式創(chuàng)建線程繼承類實(shí)現(xiàn)接口實(shí)現(xiàn)接口并且多線程運(yùn)行 Java 主線程名 我們啟動的一個程序可以理解為一個進(jìn)程, 一個進(jìn)程中包含一個主線程, 線程可以理解為一個子任務(wù). Java 中可以通過下面代碼來...
摘要:方法將凍結(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)記,那么線程就不會停止。 int...
摘要:線程是在進(jìn)程中獨(dú)立運(yùn)行的子任務(wù)。線程中斷狀態(tài)由該方法清除。測試線程對象是否已經(jīng)是中斷狀態(tài),但不清除狀態(tài)標(biāo)志。高優(yōu)先級的線程總數(shù)大部分先執(zhí)行完,但不代表高優(yōu)先級的線程全部先執(zhí)行完。當(dāng)進(jìn)程中不存在非守護(hù)線程了,則守護(hù)線程自動銷毀。 進(jìn)程是受操作系統(tǒng)管理的基本運(yùn)行單元。 線程是在進(jìn)程中獨(dú)立運(yùn)行的子任務(wù)。使用多任務(wù)操作系統(tǒng)Windows后,可以最大限度地利用CPU的空閑時間來處理其他的任務(wù)。...
閱讀 3494·2023-04-25 18:14
閱讀 1601·2021-11-24 09:38
閱讀 3317·2021-09-22 14:59
閱讀 3122·2021-08-09 13:43
閱讀 2642·2019-08-30 15:54
閱讀 618·2019-08-30 13:06
閱讀 1624·2019-08-30 12:52
閱讀 2775·2019-08-30 11:13