【发布时间】:2017-05-09 04:01:21
【问题描述】:
我有 3 种类型的线程。主线程,工作者,客户端。 我也有 2 个队列,一个请求队列和一个响应队列。
主线程产生许多客户端。每个客户端都会请求一些东西,并且应该将其添加到主请求队列中。主程序将产生适当的工作人员,工作人员将处理请求。完成后,它会将 [result, calling thread #] 添加到响应队列中。每个客户端都会在请求后等待响应。我该怎么办?
我想我应该为队列使用并发链接队列。这个可以吗? 客户端是否应该偷看直到找到它的线程 ID 和轮询?头部是否有可能在窥视和轮询之间改变?我不想添加锁,因为会有很多争用和延迟。
这必须是线程安全和并发的,并且没有任何死锁或饥饿。
【问题讨论】:
-
您可能想提交一个minimal reproducible example。总是很难回答仅仅在广泛、不具体的层面上解释你的代码在做什么的问题。除此之外:您在这里问的问题不止一个。请退后一步,让您的问题更具体;如果有几个不同的问题要问 - 问几个不同的问题!
标签: java multithreading concurrency