java并发编程的艺术
worldeert
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java并发编程的艺术6之Java中的13个原子操作类、并发工具类、线程池、Executor框架
Java从JDK1.5开始提供了java.util.concurrent.atomic包,这个包中的原子操作类提供了一种用法简单、性能高效、线程安全地更新变量地方式。6.Java中的13个原子操作类6.1.原子更新基本类型使用原子方式更新基本类型,Atomic包提供了三个类:AtomicBoolean、AtomicInteger、AtomicLong。几种常用方法: int add...原创 2020-01-11 22:49:48 · 211 阅读 · 0 评论 -
Java并发编程的艺术5之Java并发容器和框架
1 ConcurrentHashMap的实现原理与使用Concurrent是线程安全且高效的HashMap。因为在并发编程中HashMap可能导致程序死循环,而线程安全的HashTable效率非常低下,所以产生了ConcurrentHashMap。1.1.HashMap和HashTable线程不安全的HashMap HashMap在并发执行put操作时会引起死循环,因为多线程会导致H...原创 2020-01-11 16:05:55 · 231 阅读 · 0 评论 -
java并发编程的艺术4之Java中的锁
1.Lock接口Java SE5之后新增加的,与Synchronized功能类似,只是使用时需要显示的获取和释放锁。虽然它缺少了(通过synchronized块或者方法所提供的)隐式获取释放锁的便捷性,但却拥有了锁获取与释放的可操作性,可终端的获取锁以及超时获取锁等多种synchronized关键字所不具备的同步特性。在finally块中释放锁,保证在获取到锁之后,最终能够被释放。不需...原创 2020-01-10 20:27:21 · 260 阅读 · 0 评论 -
java并发编程的艺术3之java并发编程的基础
1 线程线程:现代操作系统调度的最小单元,也叫轻量级进程。设置线程优先级时,针对频繁阻塞(休眠/IO操作)的线程需要设置较高优先级,而偏重运算(需要较多CPU时间或者偏运算)的线程设置较低的优先级,确保处理器不会被独占。线程的六种状态:线程创建后,调用start()方法开始运行。当线程执行wait()方法之后,线程进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能返回到...原创 2020-01-09 20:53:16 · 135 阅读 · 0 评论 -
java并发编程的艺术笔记2之Java内存模型
目录二.Java内存模型1.Java内存模型的基础1.1并发编程模型的两个关键问题1.2Java内存模型的抽象结构1.3 从源代码到指令序列的重排序(为了提高性能)1.4 并发编程模型的分类1.5 happens-before (:一个操作的结果需要对另一个操作可见,可在不同线程)2.重排序3.顺序一致性3.1顺序一致性内存模型的两大特性3.2 顺...原创 2019-12-04 10:36:34 · 238 阅读 · 0 评论 -
java并发编程的艺术笔记1之Java并发机制的底层实现原理
1. Java并发机制的底层实现原理1volatileFigure 1‑1 CPU的术语定义1volatile的两条实现原则:(1) Lock前缀指令会引起处理器缓存回写到内存多处理器中,Lock#信号在声言期间会锁住总线,导致其他CPU用总线,也就无法用内存,此时该处理器可以独占所有内存。有些处理器锁缓存。缓存锁定:如果已经缓存在处理器内部,则不会声言Lock#信号...原创 2019-12-04 10:31:12 · 283 阅读 · 0 评论
分享