随笔分类 - Java并发编程
摘要:缓存+写缓冲区+无效化队列 == 缓存一致性协议+内存屏障 参考 "计算机体系结构(第五版)-复习-MESI&MOESI协议" Java多线程编程实战指南 核心篇 第11章前4节 "介绍三种基本的地址映射方法" "ARM的cache和写缓冲器(write buffer" "理解 Memory bar
阅读全文
摘要:volatile可见性案例 黑马 运行结果
阅读全文
摘要:Java死锁演示 在线程中嵌套获取锁导致死锁。思路,尽量不要嵌套获取锁。 控制台输出 jstack dump进程信息 死锁信息 bug
阅读全文
摘要:1 package com.mozq.multithread; 2 3 /** 4 * 深入理解Java虚拟机 volatile 关键字 和 i++ 原子性。 5 */ 6 public class VolatileTest { 7 public static volatile int race = 0; 8 9 private static final int THREADS_COUNT = 2
阅读全文
摘要:1.进程间通信: 进程间常需要相互通信,需要解决3个问题? 1.一个进程如何把信息传递给另一个? 2.确保多个线程在关键活动中不会出现交叉? 3.正确的顺序? 2.竞争条件: 多个进程读写共享数据,最后的结果取决于进程的执行顺序,称为竞争条件(race condition) 3.互斥: 一个进程在操
阅读全文
摘要:1 package incre; 2 3 public class Incre { 4 public static void main(String[] args) { 5 class Count implements Runnable { 6 public int num; 7 @Override
阅读全文
摘要:package com.mozq.thread.interrupt; /** * 注意:调用interrupt()方法,并不会结束线程。 * 结束线程的语义:需要我们自己使用3个中断方法构建。 * * 没有任何语言方面的需求一个被中断的线程应该终止。 * 中断一个线程只是为了引起该线程的注意,被中断线程可以决定如何应对中断。 * 某些线程非常重要,以至于它们应该不理...
阅读全文
摘要:package com.mozq.thread.interrupt; /** * 结束线程方法1:使用结束标志,但是当线程处于阻塞状态时,如果线程不退出阻塞状态,则无法检测退出标志,也就不能退出。 * @author jie * */ class StopThread implements Runnable{ private boolean exit = false; ...
阅读全文
摘要:package com.mozq.thread.producer2; /* * 面试题2:以下代码是否存在错误 class ThreadTest implements Runnable{ public void run(Thread t){} } 结果:实现Runnable接口,但是没有覆盖接口中的run方法,应该被定义为抽象类。public void run(Thread t)和vo...
阅读全文
摘要:package com.mozq.thread.producer2; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 当使用等待时 * 如果用i...
阅读全文
摘要:package com.mozq.thread.resource2; /** * 创建2个线程,一个写入人员信息,一个读取人员信息 * * @author jie * */ class Resource { private String name; private String sex; private boolean set = false; public synch...
阅读全文

浙公网安备 33010602011771号