02 2018 档案

锁 - 抽象锁AbstractQueuedSynchronizer
摘要:抽象锁 AbstractQueuedSynchronizer 很难去翻译这个词,抽象排队同步器?这里姑且叫抽象锁吧。 抽象锁只是一个抽象类,锁封装了一些锁的常规操作,包括信号量、倒数锁、可重入锁,内部代码都包含了抽象同步锁的实现类。 抽象同步锁用到了Unsafe类,Unsafe虽然在Java的基础包 阅读全文

posted @ 2018-02-16 18:11 疯狂的妞妞 编辑

锁 - 可重入锁ReentrantLock
摘要:可重入锁 其实 synchronized 就是一个可重入锁,而 ReentrantLock 具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但 ReentrantLock 的功能更强大。 可重入锁“可重入”的意思就是:当前线程获取了一个锁,就可以进入任何 阅读全文

posted @ 2018-02-16 17:51 疯狂的妞妞 编辑

锁 - 线程屏障CyclicBarrier
摘要:CyclicBarrier 直译是:循环屏障、可重用屏障。日常交流过程中,也可能称作:线程屏障。 跟信号量、倒数锁一样,都可以简单地实现“多个子线程执行完毕,主线程开始执行”的功能。 而屏障锁是其中较为特殊的: 几个线程互相等待,直到某个公共屏障点 (common barrier point),它们 阅读全文

posted @ 2018-02-03 08:36 疯狂的妞妞 编辑

锁 - 倒数锁CountDownLatch
摘要:CountDownLatch 倒数锁,顾名思义,需要给定一个初始值,每次调用计数减一,计数到达零之前,线程将一直受阻塞,计数到零之后,会释放所有等待的线程。 业务场景:主线程需要5个并发的初始化操作,5个线程全部执行完毕,主线程开始执行。 /** * @author ChenSS on 2018年2 阅读全文

posted @ 2018-02-03 08:33 疯狂的妞妞 编辑

锁 - 信号量Semaphore
摘要:Semaphore 直译:发出信号、打旗语,在编程中通常被称为:计数信号量,或者信号量。 举个生活案例 比如说旅店有10个单人间,有非常多的人要住; 最多只会只有10个人拿到钥匙; 没拿到钥匙的人非要住,那就只能等了; 而拿走钥匙的人,不住了那就必须退还钥匙,不然别人就没办法住。 信号量的使用类似于 阅读全文

posted @ 2018-02-03 08:29 疯狂的妞妞 编辑

mq - 优先队列PriorityQueue
摘要:场景描述 队列通常采用 FIFO(先进先出) 策略,可以满足多数情况下的开发需求,但是也有其不足之处。 例如: 我要小明帮我买早餐, 第一次,“小明,你后天帮我买牛奶吧!”, 过了一会儿,“小明,你明天帮我买豆浆呗!”。 这个案例中,我先叫小明买的牛奶,再叫他买的豆浆,如果按照普通队列,按顺序执行, 阅读全文

posted @ 2018-02-02 10:40 疯狂的妞妞 编辑

mq - 阻塞队列BlockingQueue
摘要:队列 Queue 在 java 中,继承自 Collection,多数的实现类位于 java.util.concurrent,与线程池位于同一个包下,大多数的队列都与线程和锁挂钩,少量位于 java.util,比如 LinkedList、PriorityQueue。 程序员最早接触的队列一般是 Li 阅读全文

posted @ 2018-02-02 10:33 疯狂的妞妞 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示