與自定義執行緒池相比,參考Oracle檔案的源代碼建議在并行流時使用通用執行緒池。
由于公共池的執行緒數與 CPU 內核數相同,因此使用公共執行緒池和由與公共池相同數量的執行緒組成的自定義執行緒池有什么區別?
uj5u.com熱心網友回復:
最好問一下,自定義執行緒池有什么好處?這是更多的作業,那為什么要這樣做?
處理器是一種全球資源。自定義執行緒池可以在不同的地方創建而無需任何協調,從而“過度分配”處理器。
可重用的庫不應創建自定義執行緒池;如果您可以證明為什么需要自定義執行緒池,則應該在應用程式的更高級別對其進行管理。為了支持這一點,可重用庫可能允許呼叫者配置(注入)自定義執行器,并默認回退到公共執行緒池。
uj5u.com熱心網友回復:
使用公共執行緒池和由與公共池相同數量的執行緒組成的自定義執行緒池有什么區別?
一些重要的考慮:
使用通用執行緒池,您無需撰寫或維護或配置或管理自己的執行緒池。
公共執行緒池存在并被使用,它已經提供了與內核一樣多的執行緒。無論如何,沒有更多的執行緒可以同時取得進展,因此,如果您設定了一個自定義池并且它和公共池都完全訂閱了非阻塞操作,那么您會從額外的執行緒中產生額外的開銷,但不會加速。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/467455.html
