shutdownNow的侷限性以及解決辦法

2021-09-08 20:59:51 字數 792 閱讀 6086

侷限性:showdownnow會嘗試取消正在執行的任務並返回所有已經提交但尚未開始執行的任務。也就是說我們不能了解到哪些任務已經開始但是尚未結束的任務,那麼這些任務有可能就被丟棄了。

解決辦法如下:

思路:判斷任務在返回時是否處於中斷狀態,如果處於中斷轉態,我們將這些任務的執行緒存放到集合中。

**:

public class trackingexecutor extends abstractexecutorservice

@override

public void shutdown()

@override

public listshutdownnow()

@override

public boolean isshutdown()

@override

public boolean isterminated()

@override

public boolean awaittermination(long timeout, timeunit unit) throws interruptedexception

@override

public void execute(runnable runnable) finally }}

}); }

//獲取取消的執行緒

public listgetcancelledtask()

return new arraylist(taskscancelledatshutdown); }

}

時代侷限性

時代侷限性的 什麼是時代侷限性?根本原因是理性能力的有限性。一般而言,我們能對問題提出具有一定一般性的解釋並經過一些檢驗,這樣的知識獲取就可以算作理性推知了。至少包括 能理清邏輯 確立因果的解釋是稀有的。不經過思考屬於迷信權威。主要指實踐中的試錯成分。試錯得到的結果有可能缺乏可解釋性。一味堅持過去實...

SQLite的侷限性

sql 92特性方面 正如前面提到的,sqlite不支援sql 92的在很多企業資料庫系統中可用的一些特性。如 外來鍵約束 可解析的,但非強制 很多alter table特性 一些trigger相關的特性 right和full outer join 更新乙個view grant和revoke 你可以...

SQLite的侷限性

sqlite和其他大部分現代sql資料庫在基本設計目標上是不同的,它的目標是簡單。sqlite遵循這一目標,即使這樣偶爾會導致某些特性實現的低效化。下面列舉了sqlite的一些缺陷 sql 92特性方面 正如前面提到的,sqlite不支援sql 92的在很多企業資料庫系統中可用的一些特性。如 外來鍵...