我正在我的程序中使用阻塞队列..我的客户端thred轮询响应,服务器thred向队列提供响应。我没有从客户端使用任何thread.sleep机制,因为当我的服务器线程延迟将一些消息放入队列时,我使用blockingqueue..But im从队列中生成空值。为什么会发生这种情况?我的代码;
private BlockingQueue<Message> applicationResponses= new LinkedBlockingQueue<Message>();
client
--------
Message response = applicationResponses.poll();
server;
applicationResponses.offer(message);发布于 2013-05-01 13:16:42
使用take而不是poll - take将阻塞线程,直到对象就绪,而如果队列为空,则poll将简单地返回null
https://stackoverflow.com/questions/16313096
复制相似问题