java SynchronousQueue 似乎有的一个bug

阅读更多
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 的理解,不到位。


你可能感兴趣的:(Java,thread)