javamtia icon indicating copy to clipboard operation
javamtia copied to clipboard

《Java多线程编程实战指南(核心篇)》的配套源码

Results 14 javamtia issues
Sort by recently updated
recently updated
newest added

ch4/case02/RecordSet.java 41 行应该 return false 吧

ch4/case02/RecordProcessor.java 第 136 行代码块是什么意思?recordParts.length 难道恒等于 11 吗?

ch4/case02/RecordProsessor.java 104 行是否和 109 行重复

createStoreFile() 创建 RandomAccessFile 后 为什么又关闭掉 然后再构造函数中又重新创建呢?是为了提前处理异常吗?

书籍P394,第三自然段: StoreStore 屏障可以通过对写缓冲器中的条目进行标记来实现禁止 StoreStore 重排序。 StoreStore 屏障会将写缓冲器中的现有条目做一个标记,以表示这些条目代表的写操作需要先于该屏障之后的写操作被提交。 处理器在执行写操作的时候如果发现写缓冲器中存在被标记的条目,那么即使这个写操作对应的高速缓存条目的状态为E或者M,此时处理器也不直接将写操作的数据写入高速缓存,而是将其写入写缓冲器,从而使得 StoreStore 屏障之前的任何写操作先于该屏障之后的写操作被提交。 请问: 最后一句话,“不直接将写操作的数据写入高速缓存,而是将其写入写缓冲器”是否写错了?既然是左侧store先提交,也就是内存操作作用到主内存(或者高速缓存),那么应该不是写入写缓冲器,而是写入高速缓存吧?这块概念理解有点困难,还盼作者回复,谢谢。

问题描述: 1、测试结果中有两个线程拿到一样的值 2、还有一种情况是线程获取的值顺序不对 count的变量值在增加的时候使用了锁,也就是同时只有一个线程对count变量做修改,读取变量增量了volatile保障读取到最新的值,但是实际反复测试确不是这样,麻烦老师解惑下谢谢 测试的代码如下 package io.github.viscent.mtia.ch3.case03; import io.github.viscent.mtia.ch3.Counter; import io.github.viscent.mtia.util.Debug; public class ThreadTest { public static void main(String[] args) { Counter counter = new Counter(); Thread thread =new Thread(){...

清单6-5 ```Java /** * 该类是一个错误的Servlet类(非线程安全) * * @author Viscent Huang */ public class UnsafeServlet extends HttpServlet { private static final long serialVersionUID = -2772996404655982182L; private final SimpleDateFormat sdf = new...

question

readme文件里面最好包含一下这个project的目录描述就好了

黄老师,书上每章后面的思维导图能发出来吗?

请问黄老师,静态代码块在类加载的时候算原子操作么,如果不是原子操作,那也有可能出现线程不安全吧,那如果在静态代码块中new 了对象,且发生了重排序,是不是也有可能拿到没有初始化完全的引用呢,谢谢!