我有以下代码:
Queue<Message> localMsgQueue;
//inside the constructor
localMsgQueue = new ConcurrentLinkedQueue<Message>();
public void AddMsg(Message m)
{
localMsgQueue.offer(m);
System.out.println("^^"+localMsgQueue.size());
}
public void GetMsg() {
System.out.println("+++" + localMsgQueue.size());
}
在这里,在初始化队列的主线程中调用 AddMsg。GetMsg 不时从不同的线程调用。
我的问题是 AddMsg 中的大小检查返回队列中正确数量的元素,而 GetMsg 总是返回零大小,尽管队列包含元素。
有人可以指出这里的问题吗?这是我第一次使用 Java 并发队列,所以不知道发生了什么。