- 博客(9)
- 收藏
- 关注
原创 并发编程的艺术-学习8
第8章 Java中的并发工具类 CountDownLatch、CyclicBarrier、Semaphore 8.1 等待多线程完成的CountDownLatch 比较join join用于让当前执行线程等待join线程执行结束。其实现原理是不停检查join线程是否存活,如果join线程存活则让当前线程永远等待。 直到join线程中止后,线程的this.notifyAll()方法会被调用(JVM实...
2019-09-19 22:33:27 100 1
原创 并发编程的艺术-学习7
并发编程的艺术-学习第7章 Java中13个原子操作类7.1 原子更新基本类型类7.2 原子更新数组7.3 原子更新引用类型7.4 原子更新字段类7.5 本章小结 第7章 Java中13个原子操作类 4种类型的原子更新方式:原子更新基本类型、原子更新数组、原子更新引用、原子更新属性。 7.1 原子更新基本类型类 AtomicBoolean AtomicInteger AtomicLong Atom...
2019-09-18 21:55:45 87
原创 java并发编程的艺术-学习6
并发编程的艺术-学习第6章 Java并发容器和框架6.1 ConcurrentHashMap的实现原理与使用6.1.1 为什么要使用ConcurrentHashMap 第6章 Java并发容器和框架 6.1 ConcurrentHashMap的实现原理与使用 ConcurrentHashMap是线程安全且高效的HashMap。 6.1.1 为什么要使用ConcurrentHashMap 在并发编程...
2019-09-16 23:28:25 137
原创 java并发编程的艺术-学习5
并发编程的艺术-学习第五章 Java中的锁5.1 Lock接口5.2 队列同步器5.2.1 队列同步器的接口与示例 第五章 Java中的锁 5.1 Lock接口 Lock接口显示操作锁,synchronized隐式锁。 Lock接口特性 特性 描述 尝试非阻塞的获取锁 当前线程尝试获取锁,如果该时刻没有被其他线程获取到,则成功获取并持有锁 能被中断的获取锁 与Synchroni...
2019-09-01 10:07:08 116
原创 java并发编程的艺术-学习4
并发编程的艺术-学习第四章 Java内存模型4.1 线程简介4.1.1 什么是线程4.1.2 为什么使用多线程 第四章 Java内存模型 本章着重介绍java并发编程的基础知识,从启动一个线程到线程间不同的通信方式,以及简单的线程池示例。 4.1 线程简介 4.1.1 什么是线程 操作系统调度的最小单元是线程。线程拥有自己的计数器、堆栈、局部变量等属性,能访问共享的内存变量。 4.1.2 为什么使...
2019-08-27 21:52:37 123
原创 Java并发编程的艺术-学习3
并发编程的艺术-学习第三章 Java内存模型3.1.1 并发编程模型的两个关键问题3.1.2 Java内存模型的抽象结构3.1.3 从源代码到指令序列的重排序(1)编译器优化的重排序。(2)指令级并行的重排序。(3)内存系统的重排序。3.1.4 并发编程模型的分类 第三章 Java内存模型 3.1.1 并发编程模型的两个关键问题 在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同...
2019-08-27 07:39:04 102
原创 java并发编程的艺术-学习-2
第二章 Java并发机制的底层实现原理 Java代码在编译后会变成java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。 2.1 Volatile的应用 在多线程并发编程中synchronized和volatile都扮演着重要角色,volatile是轻量级的synchronized,它在...
2019-08-03 11:08:46 179
原创 java并发编程的艺术-学习-1
第一章 并发编程的挑战 目的:让程序运行更快 并发编程面临的挑战:上下文切换、死锁、硬件和软件的资源限制 1.1 上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。 CPU...
2019-08-03 10:09:00 95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人