【发布时间】:2011-08-24 17:45:46
【问题描述】:
我有多个客户端 TCP 套接字连接到服务器套接字。这没有什么不寻常的。在这些套接字上,服务器套接字需要处理间歇性的数据。在某些时期,从客户端到服务器的数据流几乎是连续的。
我的问题是我需要确保一个套接字连接上的数据在来自其他套接字连接的数据之前由服务器提供服务。只有在那个“特殊”连接上没有更多数据之后,我才应该从其他客户端读取数据。
现在我有一个每个客户端线程的方法,我认为这不是我的情况的最佳解决方案。具有快速“特殊”连接的东西是一种新要求。所以,现在,我正在寻找在不重写我已经拥有的套接字处理的情况下满足这个要求的方法。
有什么建议吗?非常感谢。
【问题讨论】:
-
设置线程优先级不能给你这个吗?为普通客户端创建一个具有正常优先级的线程,但为特殊客户端创建一个更高优先级的线程。
-
是的,我可以这样做,但是这样做,我能保证我总是比其他人先阅读快速连接吗?
-
你是对的。看看这个 SO 问题 - stackoverflow.com/questions/128039/… 。答案中的链接指向线程调度的 JVM 实现中的一个错误。还有一个参考 Effective Java Programming Guide 可能有线程调度的解决方案。
标签: java multithreading sockets client-server