享受编程带来的快乐……
posted on 2006-10-09 14:27 Xueping Yang 阅读(1235) 评论(6) 编辑 收藏 所属分类: 技术文章
Java 5开始内置的java.util.concurrent.locks包里面有pthread-like的Lock和Condition,很方便。 回复 更多评论
@GHawk 对于我的这个需求来说,上面的代码可能已经是最简单的呢,要是用concurrent的话必须要tiger啦。 回复 更多评论
呵呵,有意思,毕竟现在的应用服务器都是在jdk1.4下,不能用tiger 回复 更多评论
但是有一个专门做线程同步的包:concurrent.jar,没有仔细研究它的实现,应该有类似的实现 回复 更多评论
上面的所有方法都是同步的,什么时候不同步,代码里体现了么? synchronized (getLock(id)) { 15 // TODO 16 } 是同步的,它调用的getLock(id)里面也都是同步的,除非在方法 synchronized (locks) {}的外面再加一个其他条件的代码才能算是吧? 还是你省略了这些代码? 回复 更多评论
@stoneshao util.concurrent 的确有一个backport可以在1.4jvm上使用 http://dcl.mathcs.emory.edu/util/backport-util-concurrent 自己实现多线程的东西还是比较容易出现问题的,debug和性能分析都可能花费大量的时间,个人感觉还是用现有的库更容易一些。 回复 更多评论