![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入浅出 Java Concurrency
Se7ven_Den
一个人的真正价值,首先决定于他在什么程度上和在什么意义上从自我解放出来.--爱因斯坦
展开
-
深入浅出 Java Concurrency (4): 原子操作 part 3 指令重排序与happens-before法则
在这个小结里面重点讨论原子操作的原理和设计思想。由于在下一个章节中会谈到锁机制,因此此小节中会适当引入锁的概念。在Java Concurrency in Practice中是这样定义线程安全的:当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替运行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就是线程安全的。转载 2014-05-23 23:57:14 · 535 阅读 · 0 评论 -
《深入浅出 Java Concurrency》目录
这是一份完整的Java 并发整理笔记,记录了我最近几年学习Java并发的一些心得和体会。 J.U.C 整体认识原子操作 part 1 从AtomicInteger开始原子操作 part 2 数组、引用的原子操作原子操作 part 3 指令重排序与happens-before法则原子操作 part 4 CAS操作锁机制 part 1 Lock与ReentrantLock锁机制 p转载 2014-05-23 23:22:36 · 327 阅读 · 0 评论 -
深入浅出 Java Concurrency (5): 原子操作 part 4
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatil转载 2014-05-23 23:58:38 · 408 阅读 · 0 评论 -
深入浅出 Java Concurrency (1) : J.U.C的整体认识
去年年底有一个Guice的研究计划,可惜由于工作“繁忙”加上实际工作中没有用上导致“无疾而终”,最终只是完成了Guice的初步学习教程,深入的研究没有继续进行下去。最近一直用的比较多的就是java.util.concurrent(J.U.C),实际上这块一直也没有完全深入研究,这次准备花点时间研究下Java里面整个并发体系。初步的设想包括比较大的方便(包括硬件、软件、思想以及误区等等)转载 2014-05-23 23:33:18 · 583 阅读 · 0 评论 -
深入浅出 Java Concurrency (2): 原子操作 part 1
从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包,而Queue,很多情况下使用到了Atomic操作,因此首先从这里开始)。很多情况下我们只是需要一个简单的、高效的、线程安全的递增递减方案。注意,这里有三个条件:简单,意味着程序员尽可能少的操作底层或者实现起来要比较容易;高效意味着耗用资源要少,程序处理速度要快;线程安全也非常重要,这个在多线程下转载 2014-05-23 23:34:43 · 499 阅读 · 0 评论 -
深入浅出 Java Concurrency (3): 原子操作 part 2
在这一部分开始讨论数组原子操作和一些其他的原子操作。AtomicIntegerArray/AtomicLongArray/AtomicReferenceArray的API类似,选择有代表性的AtomicIntegerArray来描述这些问题。int get(int i)获取位置 i 的当前值。很显然,由于这个是数组操作,就有索引越界的问题(IndexOutOfBoundsExc转载 2014-05-23 23:49:07 · 490 阅读 · 0 评论 -
java内置锁synchronized的可重入性
当线程请求一个由其它线程持有的对象锁时,该线程会阻塞,而当线程请求由自己持有的对象锁时,如果该锁是重入锁,请求就会成功,否则阻塞. 我们来看看synchronized,它拥有强制原子性的内置锁机制,是一个重入锁,所以在使用synchronized时,当一个线程请求得到一个对象锁后再次请求此对象锁,可以再次得到该对象锁,就是说在一个synchronized方法/块的内部调用本类的其转载 2014-08-28 00:08:05 · 509 阅读 · 0 评论