【发布时间】:2013-03-19 06:32:13
【问题描述】:
谈到 thread-per-connection 模型,每个连接都应该有一个单独的线程。该线程用于从流中读取数据。但是,由于我使用的是阻塞 I/O,因此在它尝试读取某些内容时我无法发送任何内容。
显然 Minecraft 每个连接使用两个线程,一个用于读取,一个用于写入。这也是我应该做的事情还是我应该如何实施?
据我所知,发送数据也是阻塞的,所以我不能只从tick线程发送,对吧?
所以再一次,我想知道的是:
- 我应该为每个连接设置一个读写线程吗?如果没有,那我应该如何实现呢?
提前致谢。
【问题讨论】:
-
你可以选择
nio包 -
你的使用场景是什么?您已经描述了一个实现,但在不知道您将如何使用这些线程的情况下,不可能说它是否是适当的实现。
标签: java multithreading sockets io blocking