国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)入固定資產(chǎn)競彩足球最新比賽

網(wǎng)站建設(shè)入固定資產(chǎn),競彩足球最新比賽,各國網(wǎng)站建設(shè)排名,官網(wǎng)設(shè)計房產(chǎn)1. 兩階段終止-interrupt Two Phase Termination 在一個線程T1中如何“優(yōu)雅”終止線程T2?這里的【優(yōu)雅】指的是給T2一個料理后事的機(jī)會。 錯誤思路 ● 使用線程對象的stop()方法停止線程(強(qiáng)制殺死) —— stop()方法…

1. 兩階段終止-interrupt

Two Phase Termination
在一個線程T1中如何“優(yōu)雅”終止線程T2?這里的【優(yōu)雅】指的是給T2一個料理后事的機(jī)會。

錯誤思路

● 使用線程對象的stop()方法停止線程(強(qiáng)制殺死
—— stop()方法會真正殺死線程,如果這時線程鎖住了共享資源,那么當(dāng)它被殺死后就再也沒有機(jī)會釋放鎖,其它線程將永遠(yuǎn)無法獲取鎖

● 使用System.exit(int)方法停止線程
—— 目的僅是停止一個線程,但這種做法會讓整個程序都停止

2. 兩階段終止-interrupt分析

有如下場景,做一個系統(tǒng)的健康狀態(tài)監(jiān)控(記錄電腦CPU的使用率、內(nèi)存的使用率)實現(xiàn)定時監(jiān)控。實現(xiàn)這樣一個場景,可用一個后臺的監(jiān)控線程不斷記錄。
在這里插入圖片描述
代碼實現(xiàn)

import lombok.extern.slf4j.Slf4j;@Slf4j(topic = "c.Test")
public class Test {public static void main(String[] args) throws InterruptedException {TwoPhaseTermination tpt=new TwoPhaseTermination();// 啟動監(jiān)控線程(每隔1秒執(zhí)行監(jiān)控記錄)tpt.start();// 模擬非正常打斷,主線程經(jīng)過3.5后,被interrupt()===>優(yōu)雅打斷Thread.sleep(3500);tpt.stop();}
}
// 監(jiān)控類代碼
@Slf4j(topic = "c.TwoPhaseTermination")
class TwoPhaseTermination{// 創(chuàng)建監(jiān)控線程private Thread monitor;// 啟動監(jiān)控線程public void start(){// 創(chuàng)建線程對象monitor=new Thread(()->{// 不斷被執(zhí)行監(jiān)控while (true){// 獲取當(dāng)前線程對象,判斷是否被打斷Thread current = Thread.currentThread();if(current.isInterrupted()){// 若被打斷log.debug("料理后事");break;}// 若未被打斷(每隔2s執(zhí)行睡眠,進(jìn)行監(jiān)控操作)try {Thread.sleep(1000);  // 情況1===>非正常打斷(睡眠過程中)log.debug("執(zhí)行監(jiān)控記錄");   // 情況2===>正常打斷} catch (InterruptedException e) {e.printStackTrace();// 重新設(shè)置打斷標(biāo)記(sleep()被打斷后會清除打斷標(biāo)記)current.interrupt();}}});monitor.start();}// 停止監(jiān)控線程public void stop(){// "優(yōu)雅"打斷monitor.interrupt();}
}

運(yùn)行結(jié)果
在這里插入圖片描述

分析:監(jiān)控線程每隔1s監(jiān)控系統(tǒng),主線程處于休眠狀態(tài),3.5秒后休眠狀態(tài)被打斷

*****interrupted()與isInterrupted()均為判斷當(dāng)前線程是否被打斷,表面上看起來類似。但卻有著很大的區(qū)別,調(diào)用isInterrupted()不會清除打斷標(biāo)記,而調(diào)用interrupted()判斷完后會將打斷標(biāo)記清除

3.interrupt-打斷Park線程

打斷 park 線程, 不會清空打斷狀態(tài)
Park線程:不是Thread中的方法, 是LockSupport工具類中的方法,其作用也是使當(dāng)前線程停下來

private static void test3() throws InterruptedException {Thread t1 = new Thread(() -> {log.debug("park...");LockSupport.park();log.debug("unpark...");log.debug("打斷狀態(tài):{}", Thread.currentThread().isInterrupted());}, "t1");t1.start();sleep(1);t1.interrupt();
}

運(yùn)行結(jié)果:調(diào)用park()后線程不會繼續(xù)向下運(yùn)行,使用interrupt()打斷處在park狀態(tài)的線程后此時線程會繼續(xù)向下運(yùn)行
在這里插入圖片描述注意:打斷標(biāo)記為真的情況下,再次park會失效
在這里插入圖片描述
如何使其park后還能再次停止下來?
可將打斷標(biāo)記置為假(使用Thread.interrupted(),其會將打斷標(biāo)記清除,置為假

http://m.aloenet.com.cn/news/43941.html

相關(guān)文章:

  • b2b電子商務(wù)網(wǎng)站怎么做鄭州聚商網(wǎng)絡(luò)科技有限公司
  • 科技 響應(yīng)式網(wǎng)站模板怎么搞自己的網(wǎng)站
  • 渭南市工程建設(shè)項目審批平臺免費(fèi)的關(guān)鍵詞優(yōu)化軟件
  • 奧鵬網(wǎng)頁設(shè)計與網(wǎng)站建設(shè)公司推廣渠道
  • 建設(shè)電子票務(wù)系統(tǒng)的網(wǎng)站需要多少錢百度seo多久能優(yōu)化關(guān)鍵詞
  • 怎么用ps做靜態(tài)網(wǎng)站管理培訓(xùn)
  • 煙臺網(wǎng)站建設(shè)-中國互聯(lián)看seo
  • 網(wǎng)絡(luò)企業(yè)做網(wǎng)站免費(fèi)seo刷排名
  • 可信網(wǎng)站是否必須做網(wǎng)站自動推廣軟件免費(fèi)
  • 計算機(jī)網(wǎng)站開發(fā)職業(yè)定位app開發(fā)制作
  • 網(wǎng)站建設(shè)審核需要多長時間市場調(diào)研報告模板
  • qq空間認(rèn)證的網(wǎng)站后臺根目錄百度怎么推廣網(wǎng)站
  • 十年經(jīng)驗網(wǎng)站開發(fā)企業(yè)百度地圖人工電話
  • 建設(shè)網(wǎng)站 教學(xué)反思seo網(wǎng)站優(yōu)化收藏
  • 南京專業(yè)網(wǎng)站營銷小程序推廣平臺
  • dw做旅游網(wǎng)站教程怎么聯(lián)系百度人工服務(wù)
  • 做國際貿(mào)易的網(wǎng)站產(chǎn)品品牌策劃方案
  • 電子商務(wù)公司網(wǎng)站建立前期準(zhǔn)備網(wǎng)絡(luò)營銷管理名詞解釋
  • 可以做視頻推廣的網(wǎng)站有哪些免費(fèi)注冊個人網(wǎng)站不花錢
  • 上海龍象建設(shè)集團(tuán)公司網(wǎng)站網(wǎng)絡(luò)平臺營銷
  • wordpress上傳swf網(wǎng)站優(yōu)化排名公司哪家好
  • 鄭州上海做網(wǎng)站的公司有哪些熊貓關(guān)鍵詞工具
  • 張家口手機(jī)臺app下載武漢百度推廣優(yōu)化
  • 公司網(wǎng)站維護(hù)費(fèi)大概需要多少seo綜合查詢 站長工具
  • 東莞萬江網(wǎng)站制作網(wǎng)絡(luò)營銷產(chǎn)品的特點
  • 如何做網(wǎng)站的需求分析系統(tǒng)清理優(yōu)化工具
  • 閔行區(qū)做網(wǎng)站公司百度指數(shù)工具
  • 我們網(wǎng)站的優(yōu)勢北京seo報價
  • wordpress 獨(dú)立站營銷網(wǎng)站建設(shè)規(guī)劃
  • 純css做的響應(yīng)式網(wǎng)站一鍵優(yōu)化