0
我經常聽說有一個單線程負責與客戶的所有通信被認爲是「好設計」。java-nio:從不同的線程發送而不是選擇
但是,現在我有多個線程與其他服務器通信來處理客戶端請求。
當前設計將排隊選擇線程發送的響應。選擇線程然後將響應出隊並將它們發送給適當的客戶端。
這是愚蠢的,imo。我有30個線程準備好向客戶端發送響應,並且它們都將它們排入隊列,並讓一個選擇線程逐個發送它們。
假設一個封閉的系統,是否沒有辦法安全地繞過這個限制,並從沒有(或者如果他不是相同的)選擇器的線程發送的線程最初接受客戶端請求?如果是這樣,怎麼樣?
服務器通常爲每個客戶端服務在自己的線程內。如果你聽到別的話,我會認爲這是一個錯誤的謠言。 – Heri
@Heri這不是謠言。顯然你從來沒有加熱過無阻塞多路複用I/O,這就是問題所在。它在2002年大約在'java.nio'包中引入到Java 1.4中,並且在數十年前已經出現在Unix,Windows和其他操作系統中。不要在這裏發佈錯誤信息。 – EJP