Java并发
jessDL
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java并发之CountDwonLatch
原文地址:https://blog.youkuaiyun.com/tongdanping/article/details/79589253CountDwonLatch(闭锁)CountDwonLatch用来等待一个或者多个线程完成操作,作用类似于当前线程里调用join()方法,让当前线程等待join()进来的线程执行完毕再执行当前线程剩下的逻辑,但是CountDownLatch比join()的功能更加...转载 2018-09-13 14:48:40 · 778 阅读 · 0 评论 -
Java并发(二)之AQS:CLH 同步队列及同步状态(锁)的获取
在上一篇Java并发(一)之AQS简介提到AQS 内部维护着一个 FIFO 队列,该队列就是 CLH 同步队列。1. 简介CLH 同步队列是一个 FIFO 双向队列,AQS 依赖它来完成同步状态的管理:当前线程如果获取同步状态失败时,AQS则会将当前线程已经等待状态等信息构造成一个节点(Node)并将其加入到CLH同步队列,同时会阻塞当前线程当同步状态释放时,会把首节点唤醒(公平锁),使...原创 2019-01-25 23:16:40 · 1275 阅读 · 0 评论 -
Java并发(一)之AQS简介
Java 的内置锁一直都是备受争议的,在 JDK 1.6 之前,synchronized 这个重量级锁其性能一直都是较为低下,虽然在 1.6 后,进行大量的锁优化策略,但是与 Lock 相比 synchronized 还是存在一些缺陷的:虽然 synchronized 提供了便捷性的隐式获取锁释放锁机制(基于JVM机制),但是它却缺少了获取锁与释放锁的可操作性,可中断、超时获取锁,且它为独占式在高...原创 2019-01-25 22:24:50 · 503 阅读 · 0 评论 -
深入分析 volatile 的实现原理
通俗点讲就是说一个变量如果用 volatile 修饰了,则 Java 可以确保所有线程看到这个变量的值是一致的。如果某个线程对 volatile 修饰的共享变量进行更新,那么其他线程可以立马看到这个更新,这就是所谓的线程可见性。volatile 虽然看起来比较简单,使用起来无非就是在一个变量前面加上 volatile 即可,但是要用好并不容易(LZ 承认我至今仍然使用不好,在使用时仍然是模棱两可...原创 2018-11-29 15:12:41 · 351 阅读 · 0 评论 -
线程安全-锁机制 synchronized用法同步方法
一个简单的例子,10个人抢8张票,结果肯定是有2个人抢不到票的public class Ticket { private static CountDownLatch ctl =new CountDownLatch(1); private ReentrantLock rentLock=new ReentrantLock(); Integer stock=8;//总票数 publ...原创 2018-10-14 18:38:19 · 337 阅读 · 0 评论 -
Java并发之Exchanger(交换者)
转:https://blog.youkuaiyun.com/tongdanping/article/details/79589253Exchanger(交换者)Exchanger是一个线程间提供数据交换功能的写作工具,他提供了一个同步点,在这个同步点,两个线程可以交换彼此的数据。线程间通过调用excahange()方法交换数据,如果第一个线程先到达同步点,执行exchange方法,那么他会一直在同步点...转载 2018-09-13 15:34:27 · 357 阅读 · 0 评论 -
Java 并发之Semaphore(信号量)
转:https://blog.youkuaiyun.com/tongdanping/article/details/79589253Semaphore(信号量)Semaphore用于流量控制,用于控制访问特定资源的线程数量,通过协调各个线程,以保证合理的使用公共资源。Semaphore就像公路上的交通信号灯或者收费站,用于控制车的流量,如果一条公路只允许10 个车通行,相当于在路口设置一个颁发通行证的...转载 2018-09-13 15:19:31 · 314 阅读 · 0 评论 -
Java并发之CyclicBarrier(同步屏障)
参考文章:https://blog.youkuaiyun.com/tongdanping/article/details/79589253CyclicBarrier(同步屏障)让一组线程到达一个屏障(或者同步点)时被阻塞,知道所有线程到达同步屏障后,同步屏障开门,所有线程继续执行。同步屏障的使用:同步屏障有两种使用方式,从CyclicBarrier的构造方法个可以看出来 //构造方法1...转载 2018-09-13 15:10:55 · 1074 阅读 · 1 评论 -
Java并发之阻塞队列 ArrayBlockingQueue
1. 简介ArrayBlockingQueue,一个由数组实现的有界阻塞队列。该队列采用 FIFO 的原则对元素进行排序添加的。ArrayBlockingQueue 为有界且固定,其大小在构造时由构造函数来决定,确认之后就不能再改变了。ArrayBlockingQueue 支持对等待的生产者线程和使用者线程进行排序的可选公平策略,但是在默认情况下不保证线程公平的访问,在构造时可以选择公平策略...转载 2019-01-30 15:25:46 · 296 阅读 · 0 评论
分享