首頁  >  問答  >  主體

java - ThreadPoolExecutor 得到正在运行的Thread实例

文档上只有得到 当前运行的线程数量

我要获得正在运行的,我放进去的runable的实例 怎么得到

巴扎黑巴扎黑2762 天前765

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-04-17 11:34:44

    API層面應該沒有這種支援. 有一個可能的辦法, 覆寫ThreadPoolExecutor的beforeExecute和afterExecute方法, 可以在task執行前/後去寫log檔, 你的監控進程/線程去輪詢log得到當前在運行的task.

    或是你可以用一些執行緒/進程間通訊的 方式(例如socket?), 可以得到更即時的結果.

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 11:34:44

    的確可以覆寫 beforeExecute 和 afterExecute ,然後可以再開一個共享的 ConcurrentHashMap ,beforeExecute 裡面把 Runnable 放進 HashMap,afterExecute 把 Runnable 從 HashMap 刪除。

    回覆
    0
  • 取消回覆