2013-01-13 32 views
2

netty代理示例對服務器和客戶端nio套接字工廠的bossExecutorworkerExecutor使用單個Executors.newCachedThreadPool
這是有原因嗎?要使用多少個執行程序?

回答

1

回顧:老闆線程用於接受連接而工作線程做從信道處理入局/出局緩衝器的實際工作。

老闆線程通常不是很忙。而且netty只需要每個端口一個線程,而不是整個池。但是你可以決定有一個線程池與一個線程到服務器10端口。所有港口將共享和競爭同一個單獨的老闆線程。

回到你的問題:老闆和工作者線程擁有相同的池是否是一個好主意?這並不可怕,你可以讓你的設計和維護更簡單一些。然而,由於池中的所有線程都可能被工作人員佔用,並且沒有線程留給老闆,所以存在延遲接受新連接的風險。不要認爲這是一個大問題。