有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中高效处理双向socket的多线程

我正在编写一个系统核心(服务器),用于处理多个连接和请求。让我们假设我的服务器已经连接了一个客户端,并且已经准备好进行通信。我这里的问题是,我如何让服务器知道客户机想要发送一些数据或反转。因为读取会阻塞,直到它接收到数据。。。那么,如果我们不知道另一端的远程系统期望的是什么,如何管理对socket的读写操作呢? 我可以用多线程来解决这个问题。有什么办法吗


共 (1) 个答案

  1. # 1 楼答案

    多线程是解决这个问题的唯一合理方法(事实上,这是需要线程的绝对经典案例之一)——您必须为每个连接创建一个新线程

    您可能希望直接这样做,或者您可能希望使用java.util.concurrent(我推荐)中提供的构造,例如线程池。一种明智的方法可能是使用fixed thread pool来确保线程数量不会增长得太大,然后根据需要在那里生成线程