浏览 3931 次
锁定老帖子 主题:《java并发编程实践》
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (15)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-11
Sun社区线程指导区推荐读物之一(当然是推荐的英文版)。书写的循序渐进,实例丰富。这次博文的中文版翻译质量较好,还没有全部看完,但已经开始对几个做java的朋友推荐了 :)
Java currency framework是java 5新加入的,但感觉了解的人不多,多数人还是自己写线程池,队列。这个框架其实已经融入到Java里面,学会使用这个框架能让多线程程序的编写事半功倍。另外对其他语言的多线程编程也会有所启发。现在国内能买到的详细解释这个框架的书不多,这本书算是现阶段的精品了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-01
请教楼主一个问题,你有看第3.1节中的例子吗?
Listing 3.1. Sharing Variables without Synchronization. Don't Do this. public class NoVisibility { private static boolean ready; private static int number; private static class ReaderThread extends Thread { public void run() { while (!ready) Thread.yield(); System.out.println(number); } } public static void main(String[] args) { new ReaderThread().start(); number = 42; ready = true; } } 这个例子是不是有错啊?我试验过,一定会出42,而不是像书中描述的那样出0或者死循环。 请问 这是作者的错误呢,还是这个例子需要其他条件? 谢谢。 |
|
返回顶楼 | |
发表时间:2008-09-04
@tjcaomin
就这段代码来看,我也觉得必然打印出42…… |
|
返回顶楼 | |
发表时间:2008-12-09
按照书上的意思
42,0或者死循环都有可能。 编译器产生的代码也可能被CPU再次做乱序和并行(out-of-order / parallelism)优化。 |
|
返回顶楼 | |
发表时间:2008-12-09
我也在看这本书
刚好看这节呢,Volatile想了好几天了 出现0的可能性 我感觉是微乎其微 明白了volatile,应该就明白了这种可能性 http://www.ibm.com/developerworks/cn/java/j-jtp06197.html 那本书的作者写的 |
|
返回顶楼 | |