2011-01-09 162 views
2

我需要一個解決方案,它允許設置在系統上運行的線程數上限,並優化內存和CPU使用率(例如,內存大小不會增長到已知的總線程堆棧內存上)等Java中的線程管理

是否有一個本地Java技術或第三方庫?

感謝

+0

除了使用固定大小的線程池之外,您可能試圖限制使用不需要的線程。你能解釋爲什麼你想要執行這些限制,以及如果達到這些限制,你會發生什麼? – 2011-01-09 21:57:06

回答

2

線程堆棧大小是在Java中恆定的,所以你不必擔心個別螺紋尺寸無限制增長。

如果您正在編寫代碼,希望在多個線程中執行某些操作,並且您希望確保不會消耗超過給定數量的線程,則可以使用類似fixed thread count executor的內容。

你想限制一個你沒有其他控制的程序的線程數量嗎?您可能需要爲每個操作系統做一些特殊的事情。例如,Linux沒有每個進程的線程限制(只有所有進程通用的全侷限制)。

2

它看起來像你搜索的東西叫做「進程覈算」,但只爲線程。在一個JVM中,這是不可能的,每個線程都可以佔用JVM的所有內存,並且如果它將優先級設置爲最高值,它也可以將CPU從JVM中的其他線程中「偷走」。