JAVA:使用同一个套接字在多个线程上管理DataInputStream

标签 java multithreading sockets inputstream

所以基本上我有一个主线程,它将接受一个套接字并创建一个 DataInputStream 对象来接收数据,然后将这个 Input 对象传递给不同的子线程,它们将使用它来接收数据并执行不同的任务。但那是行不通的,因为两个线程都使用同一个对象来监听,所以当用户发送一些东西时,我不知道谁会读它.. 到目前为止我的想法:

1- 创建某种组织者来接收传入的请求并将它们重定向到负责的线程(我不太确定该怎么做)。

2- 当一个线程期待一系列传入请求(基于时间)时,它必须让另一个线程 hibernate ,以便它可以接管输入流(我不确定是否可以完成)。

还有其他想法或如何实现其中任何一个吗?谢谢!

(在最坏的情况下,我必须将两个线程合二为一..)

最佳答案

我建议你使用ReadWriteLock,深入了解它的api和例子。 对于这种连接线​​程的情况,您可以使用 CiclycBarier

CiclycBarrierReadWriteLock

希望对你有帮助

关于JAVA:使用同一个套接字在多个线程上管理DataInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15541786/

相关文章:

python - 通过Kafka和套接字通信流式传输视频

c# - C#套接字。仅能接收第一条消息

java - weblogic 12 中反复出现内存不足的错误

java - 连接两个数字

java - 查找等待从 ArrayBlockingQueue 轮询的任务数量?

Java 内存模型和并发

java - Android 在 Activity 启动时崩溃

java - 如何为一个类添加额外的 JUnit 测试?

javascript - 这个javascript中有竞争条件吗?

Eclipse 中的 Java Socket 聊天