中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java如何捕獲InterruptedException錯(cuò)誤

小編給大家分享一下java如何捕獲InterruptedException錯(cuò)誤,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

你所需要的網(wǎng)站建設(shè)服務(wù),我們均能行業(yè)靠前的水平為你提供.標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的保證,主要從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)建站擁有實(shí)力堅(jiān)強(qiáng)的技術(shù)研發(fā)團(tuán)隊(duì)及素養(yǎng)的視覺設(shè)計(jì)專才。

捕獲InterruptedException錯(cuò)誤

請(qǐng)檢查下面的代碼片段:

public class Task implements Runnable {
	private final BlockingQueue queue = ...;
	@Override
	 public void run() {
		while (!Thread.currentThread().isInterrupted()) {
			String result = getOrDefault(() -> queue.poll(1L, TimeUnit.MINUTES), "default");
			//do smth with the result
		}
	}
	T getOrDefault(Callable supplier, T defaultValue) {
		try {
			return supplier.call();
		}
		catch (Exception e) {
			logger.error("Got exception while retrieving value.", e);
			return defaultValue;
		}
	}
}

代碼的問題是,在等待隊(duì)列中的新元素時(shí),是不可能終止線程的,因?yàn)橹袛嗟臉?biāo)志永遠(yuǎn)不會(huì)被恢復(fù):

1.運(yùn)行代碼的線程被中斷。
2.BlockingQueue # poll()方法拋出InterruptedException異常,并清除了中斷的標(biāo)志。
3.while中的循環(huán)條件 (!Thread.currentThread().isInterrupted())的判斷是true,因?yàn)闃?biāo)記已被清除。

為了防止這種行為,當(dāng)一個(gè)方法被顯式拋出(通過聲明拋出InterruptedException)或隱式拋出(通過聲明/拋出一個(gè)原始異常)時(shí),總是捕獲InterruptedException異常,并恢復(fù)中斷的標(biāo)志。

T getOrDefault(Callable supplier, T defaultValue) {
	try {
		return supplier.call();
	}
	catch (InterruptedException e) {
		logger.error("Got interrupted while retrieving value.", e);
		Thread.currentThread().interrupt();
		return defaultValue;
	}
	catch (Exception e) {
		logger.error("Got exception while retrieving value.", e);
		return defaultValue;
	}
}

以上是“java如何捕獲InterruptedException錯(cuò)誤”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

名稱欄目:java如何捕獲InterruptedException錯(cuò)誤
本文URL:http://www.rwnh.cn/article30/ipcgso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站制作全網(wǎng)營銷推廣、域名注冊(cè)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
蒲江县| 汝城县| 广河县| 阳信县| 康保县| 加查县| 历史| 新龙县| 亳州市| 类乌齐县| 广饶县| 哈尔滨市| 久治县| 玉田县| 柳州市| 惠州市| 沈丘县| 清苑县| 定日县| 宜宾县| 南和县| 永新县| 金山区| 雅江县| 凤庆县| 梓潼县| 盖州市| 祥云县| 木兰县| 古丈县| 新津县| 永仁县| 竹溪县| 宝兴县| 丰都县| 秦皇岛市| 赞皇县| 准格尔旗| 长葛市| 宜都市| 辽源市|