浏览 2501 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-02
代码如下: 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 的理解,不到位。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-02
是的。我的代码有问题。
引出程序设计的原则: 1.不要尽可能的利用已有对象,不要担心对象创建 2. 为了thread safe: 考虑 : Caller copies Receiver copies: |
|
返回顶楼 | |