高并发编程
好好学习312
这个作者很懒,什么都没留下…
展开
-
J.U.C.Locks 体系结构
根据锁的添加到Java中的时间,Java中的锁,可以分为”同步锁”和”JUC包中的锁”。同步锁 即通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。Java 1.0版本中就已经支持同步锁了。 同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁。但是,在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能原创 2017-06-18 13:22:34 · 299 阅读 · 0 评论 -
AQS原理与源码
一、细说AQS 在深入分析AQS之前,我想先从AQS的功能上说明下AQS,站在使用者的角度,AQS的功能可以分为两类:独占锁和共享锁。它的所有子类中,要么实现并使用了它独占锁的API,要么使用了共享锁的API,而不会同时使用两套API,即便是它最有名的子类ReentrantReadWriteLock,也是通过两个内部类:读锁和写锁,分别实现的两套API来实现的,到目前为止,我们只需要原创 2017-06-18 14:46:03 · 699 阅读 · 1 评论 -
CountDownLatch和CyclicBarrier的区别
先说两点都知道的:1.CountDownLatch减计数,CyclicBarrier加计数。2.CountDownLatch是一次性的,CyclicBarrier可以重用。然后我们用被大家说烂了的跑步的例子继续说事儿:1. 有五个人,一个裁判。这五个人同时跑,裁判开始计时,五个人都到终点了,裁判喊停,然后统计这五个人从开始跑到最后一个撞线用了多长时间。Jav原创 2017-06-20 14:09:41 · 257 阅读 · 0 评论 -
ArrayBlockingQueue 和LinkedBlockingQueue
目的:本文通过分析JDK源码来对比ArrayBlockingQueue 和LinkedBlockingQueue,以便日后灵活使用。1. 在Java的Concurrent包中,添加了阻塞队列BlockingQueue,用于多线程编程。BlockingQueue的核心方法有:boolean add(E e) ,把 e 添加到BlockingQueue里。如果BlockingQueue可以容纳原创 2017-06-20 16:23:21 · 318 阅读 · 0 评论 -
Synchronized
1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。2 术语定义术语英文说明CAS原创 2017-06-20 16:40:02 · 247 阅读 · 0 评论