摘要:
步骤如下: 1.使用top命令定位异常进程。可以看见12836的CPU和内存占用率都非常高 2.使用top H p 进程号查看异常线程 3.使用printf "%x\n" 线程号将异常线程号转化为16进制 4.使用jstack 进程号|grep 16进制异常线程号 A90来定位异常代码的位置(最后的 阅读全文
摘要:
场景引入 可见性问题 先来看一张图: 上面的图,是简化版的Java内存模型,一个线程有自己的工作内存,同时还有一个共享的主内存。 线程1和线程2读取数据data时,先从主内存里加载data变量的值到工作内存,然后才可以使用那个值。 假设现在线程1修改了data变量的值为1,然后将这个修改写入到自己的 阅读全文