簡體   English   中英

優化線程池大小

[英]Optimizing thread pool size

着名的並發書中 ,Goetz建議使用可以計算池中最佳線程數

N threads = N CPU * U CPU * (1 + W/C)

W/C是等待計算比率。 我想開發一個自定義Executor ,它將使用ThreadPoolExecutor.setCorePoolSize()調整工作線程數量,但我不知道如何計算WC比率。 假設這個ThreadPool是我的應用程序使用的唯一一個如何計算該比率?

有沒有辦法跟蹤工作線程在等待/睡眠上花費的時間? 或者有沒有解決這個問題的實現?

http://docs.oracle.com/javase/7/docs/api/java/lang/management/ThreadInfo.html

這個類包含類似的方法

getBlockedCount()

返回與此ThreadInfo關聯的線程被阻止進入或重新進入監視器的總次數。

getBlockedTime()

返回自啟用線程爭用監視以來,與此ThreadInfo關聯的線程已阻止進入或重新進入監視器的大致累計已用時間(以毫秒為單位)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM