blockingQueue.put(E e); 会导致 e 变得不稳定。
代码如下:
logger.debug("put a q size :{}",pq.size());
returnSize=returnSize+pq.size();
frontier.getTodoQueue().put(pq);
pq.size is ok.
如果变为
frontier.getTodoQueue().put(pq);
logger.debug("put a q size :{}",pq.size());
returnSize=returnSize+pq.size();
则 pg 以及 pq.size 变得不稳定.
我怀疑是java SynchronousQueue 的一个bug.
当然,也许是我对 SynchronousQueue 的理解,不到位。
代码如下:
logger.debug("put a q size :{}",pq.size());
returnSize=returnSize+pq.size();
frontier.getTodoQueue().put(pq);
pq.size is ok.
如果变为
frontier.getTodoQueue().put(pq);
logger.debug("put a q size :{}",pq.size());
returnSize=returnSize+pq.size();
则 pg 以及 pq.size 变得不稳定.
我怀疑是java SynchronousQueue 的一个bug.
当然,也许是我对 SynchronousQueue 的理解,不到位。