五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

線程該如何終止

2023-08-22 09:45 作者:J加樂  | 我要投稿

關(guān)于線程的終止,自然結(jié)束才是好

也許你會(huì)想使用thread.stop(),這個(gè)是直接強(qiáng)行終止線程,容易出現(xiàn)尿到一半叫你縮回去的事,自然不行。

為什么不用stop()方法:

一般來(lái)說,當(dāng)一個(gè)線程的方法體執(zhí)行完,這個(gè)方法就會(huì)結(jié)束了。我們一般不直接使用stop方法來(lái)終止線程,這可能會(huì)導(dǎo)致業(yè)務(wù)邏輯不完整或者破壞原子性的操作,一段代碼可能用來(lái)輸出某些重要的信息,在方法的執(zhí)行中使用stop方法終止線程,會(huì)使得輸出的信息破壞或者不完整;

假如:在原子操作比如重入鎖的使用時(shí),當(dāng)一個(gè)線程對(duì)象多次獲得鎖會(huì)使得計(jì)數(shù)加一,接下來(lái)需要以相同的次數(shù)釋放鎖直到計(jì)數(shù)減到0,別的線程才能獲得鎖資源,這種操作是原子性的,因?yàn)閷?duì)線程來(lái)說,他們拿到鎖和最終釋放鎖時(shí)計(jì)數(shù)都是為0的,因此這是一種原子性操作,假設(shè)在一個(gè)對(duì)象使用鎖的期間,使用stop方法強(qiáng)行終止線程,這會(huì)導(dǎo)致鎖的計(jì)數(shù)不為0,即破壞了原子性操作。綜合來(lái)說,我們?nèi)绻_地終止一個(gè)線程,不應(yīng)該使用stop()這種過時(shí)的方法。

比較常用的是以下兩種方法:
1、使用while循環(huán)輪詢標(biāo)志位,為false則退出循環(huán),結(jié)束方法體,終止線程。

2、使用interrupt()方法在線程阻塞狀態(tài)下結(jié)束線程。?

都是? 通知結(jié)束(根據(jù)狀態(tài)判斷是否進(jìn)入中斷流程,本質(zhì)都一樣)

Thread.currentThread().interrupt();????//?設(shè)置線程中斷狀態(tài),理解發(fā)出一個(gè)中斷信號(hào)

Thread.interrupted();?????// 返回中斷狀態(tài)信息,并將狀態(tài)恢復(fù)默認(rèn)值false

Thread.currentThread().isInterrupted();???? //檢測(cè)此線程是否中斷,返回中斷狀態(tài)信息,但不會(huì)清除中斷狀態(tài)

?

例:

public class MyThread extends Thread {

??? public void run() {

??????? try {

??????????? while (!Thread.currentThread().isInterrupted()) {

??????????????? // 執(zhí)行線程的任務(wù)

??????????????? // 模擬阻塞狀態(tài)

??????????????? Thread.sleep(1000);

??????????? }

??????? } catch (InterruptedException e) {

??????????? // 響應(yīng)中斷請(qǐng)求

??????????? System.out.println("線程被中斷");

??????? }

??? }

??? public static void main(String[] args) {

??????? MyThread thread = new MyThread();

??????? thread.start();

??????? // 等待一段時(shí)間后,調(diào)用 interrupt() 方法來(lái)中斷線程

??????? try {

??????????? Thread.sleep(5000);

????????? ? // 這里改變發(fā)出中斷信號(hào) 改變Thread.currentThread().isInterrupted()的結(jié)果

??????????? thread.interrupt();?

??????? } catch (InterruptedException e) {

??????????? e.printStackTrace();

??????? }

??? }

}


線程該如何終止的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
涿州市| 平原县| 女性| 平顶山市| 博野县| 长汀县| 阳山县| 大荔县| 保德县| 宜兴市| 富民县| 昌都县| 仁布县| 祁连县| 太谷县| 和林格尔县| 葫芦岛市| 封开县| 汉源县| 永福县| 邛崃市| 年辖:市辖区| 镇沅| 博乐市| 大姚县| 绥江县| 宜章县| 临安市| SHOW| 昌宁县| 武定县| 册亨县| 蓝山县| 瑞安市| 特克斯县| 金川县| 舟山市| 玛沁县| 利川市| 象山县| 定襄县|