簡體   English   中英

Java:監聽具有更多線程的單個端口而不是監聽多個端口

[英]Java: listening to a single port with more threads vs listening to multiple ports

假設我有一個Java程序正在監聽端口8001,使用該消息並做一些工作
該端口上的程序正在處理的位的吞吐量是否有理論上的最大值? 即您將線程專用於該端口,並且可以通過添加更多線程來偵聽該端口來進行擴展? 您可以使用多少個線程來限制該端口?

現在,如果確實存在關於通過在特定端口上拋出更多線程可以擴展多少的理論最大值,是否可以通過讓程序偵聽其他端口8001和8002並增加2倍的線程來克服這一問題? 您的程序現在可以服務兩倍以上的請求嗎?

還是在端口與端口上的這些吞吐量未發出,說明進入主機的位的吞吐量受NIC限制?

您可以在同一套接字(***)上提供任意數量的並發連接。 您可以為每個連接分配一個線程,但是請記住,在Java中,每個線程消耗大約2MB。

而且,由於我們正在談論擴展,因此添加線程不會神奇地將內核添加到您的CPU。

(***)有一個理論上的限制,因為可能的ip地址數量乘以可能的源端口數量是有限的,但是在達到它之前,您將耗盡內存。

暫無
暫無

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

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