为什么github上克隆源码,提示仓库已被移动或被删除
电子版的有pdf版本的吗
目前还没有提供
作者,你好。我想问一下关于101页的图3-4.内存屏障在锁中的作用。为什么moniterexit在store barrier之前。假如线程刚好执行完moniterexit,但还没有执行store barrier,发生了线程切换。另一个线程发现其他线程已经释放了锁,就可以执行同步块了。但之前线程还没store barrier,这不就出错了吗?
大神可以帮我指导下么,书中关于volatile变量的那节,前面说他能保证可见性和有序性,但是保证不了原子性,之后举数组的例子也说明了保证不了其原子性,除非修饰的变量赋值操作不能涉及任何共享变量的访问。但是后来分布式负载均衡处理的代码中,包括volatile应用的场景3情况,在那个例子代码 volatile修饰了Candidate,但是Candidate中包含了Set<Endpoint> 而Endpoint类本身也包含了很多属性,像这种属不属于涉及到了共享变量的访问?这个和之前的volatile观点是不是相违背?还有这个例子保证了其原子性是不是与final修饰Candidate有关?望大神帮忙具体解释下哈
不违背。看下第11章的happens before关系这个概念。
很好的一本书
为什么github上克隆源码,提示仓库已被移动或被删除
电子版的有pdf版本的吗
作者,你好。我想问一下关于101页的图3-4.内存屏障在锁中的作用。为什么moniterexit在store barrier之前。假如线程刚好执行完moniterexit,但还没有执行store barrier,发生了线程切换。另一个线程发现其他线程已经释放了锁,就可以执行同步块了。但之前线程还没store barrier,这不就出错了吗?
大神可以帮我指导下么,书中关于volatile变量的那节,前面说他能保证可见性和有序性,但是保证不了原子性,之后举数组的例子也说明了保证不了其原子性,除非修饰的变量赋值操作不能涉及任何共享变量的访问。但是后来分布式负载均衡处理的代码中,包括volatile应用的场景3情况,在那个例子代码 volatile修饰了Candidate,但是Candidate中包含了Set<Endpoint> 而Endpoint类本身也包含了很多属性,像这种属不属于涉及到了共享变量的访问?这个和之前的volatile观点是不是相违背?还有这个例子保证了其原子性是不是与final修饰Candidate有关?望大神帮忙具体解释下哈
很好的一本书