在2.12.5自旋锁小节中,说“当该线程获取到锁时又需要将其切换到内核状态而唤醒该线程。”,个人认为应该是切到用户态吧
p35第一行 资源的有序性应该只破坏了环路等待条件,而不包括请求并持有条件吧?请大哥指点,感谢!
p49第三行,构造函数会把父线程中 inheritableThreadLocals 变量里面的本地变量复制一份保存到子线程的 inheritableThreadLocals 变量里面。请问大哥,这里复制的只是引用对吧?
你好,作者,书中源码可以在哪里下载?
@翟陆续,您好!关于本书的2.4章节关于内存可见性问题的分析,有个疑惑请教下:线程B在修改X的值为2后将新值存放到线程2所在的一级Cache和共享二级Cache,线程B在刷一级Cache的时候,线程A的一级Cache不会失效么,根据缓存一致性协议MESI?线程A和线程B读X的时候,应该是同一个缓存行吧。麻烦大神抽空给予回复,谢谢!
你好,根据作者描述,线程A、B分别在不同的cpu上执行,1级cache属于各CPU私有,所以缓存不同
在2.12.5自旋锁小节中,说“当该线程获取到锁时又需要将其切换到内核状态而唤醒该线程。”,个人认为应该是切到用户态吧
p35第一行 资源的有序性应该只破坏了环路等待条件,而不包括请求并持有条件吧?请大哥指点,感谢!
p49第三行,构造函数会把父线程中 inheritableThreadLocals 变量里面的本地变量复制一份保存到子线程的 inheritableThreadLocals 变量里面。请问大哥,这里复制的只是引用对吧?
你好,作者,书中源码可以在哪里下载?
@翟陆续,您好!关于本书的2.4章节关于内存可见性问题的分析,有个疑惑请教下:线程B在修改X的值为2后将新值存放到线程2所在的一级Cache和共享二级Cache,线程B在刷一级Cache的时候,线程A的一级Cache不会失效么,根据缓存一致性协议MESI?线程A和线程B读X的时候,应该是同一个缓存行吧。麻烦大神抽空给予回复,谢谢!