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