![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
java.util.concurrent在并发编程中使用的工具类
可爱小黄牛
衣带渐宽终不悔
展开
-
共享锁(读锁)/独占锁(写锁)例子
mport java.util.HashMap;import java.util.Map;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * @author phd * @version 1.0 * @date 2020/9/2 10:19 */原创 2020-10-29 11:17:25 · 386 阅读 · 0 评论 -
JUC学习笔记|分支合并、异步回调
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2020-09-06 09:14:40 · 173 阅读 · 0 评论 -
JUC学习笔记|线程池
目录线程池线程池的优势如何使用架构说明三种常见的线程池ThreadPoolExecutor7大参数线程池底层工作原理线程池的拒绝策略JDK内置的拒绝策略代码举例线程池线程池做的工作是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,其他线程执行完毕,再从队列中取出任务来执行。主要特点:线程复用、控制最大并发数、管理线程。线程池的优势降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任原创 2020-09-05 21:29:39 · 337 阅读 · 0 评论 -
JUC学习笔记|阻塞队列
目录阻塞队列为什么需要BlockingQueue分类核心方法代码示例阻塞队列阻塞队列是一个队列。当队列是空的,从队列中获取元素的操作将会被阻塞;当队列是满的。从队列中添加元素的操作将会阻塞。在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤起。为什么需要BlockingQueue好处是我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为这一切BlockingQueue都给一手包办了。在concurrent包发布以前,在多线程环境下,我们必须原创 2020-09-05 19:20:16 · 118 阅读 · 0 评论 -
JUC学习笔记|JUC辅助类
目录CountDownLatch(减少计算)CyclicBarrier(循环栅栏)Semaphore(信号灯)CountDownLatch(减少计算)CountDownLatch主要有两个方法,countDown()和await(),当一个或多个线程调用await方法时,这些线程会阻塞。其他线程调用countDown()方法计数器减一(调用countDown方法的线程不会阻塞)当计数器的值变为0时,因await方法阻塞的线程会被唤醒,继续执行。public class CountDownLat原创 2020-09-05 17:49:36 · 113 阅读 · 0 评论 -
JUC学习笔记|多线程锁(8锁现象)
目录多线程锁8锁分析synchronized实现同步的基础总结多线程锁8锁现象/** * @author phd * @version 1.0 * @date 2020/9/1 */class Phone{ public static synchronized void sendEmail() { try { TimeUnit.SECONDS.sleep(4); } catch (InterruptedExcep原创 2020-09-05 17:15:12 · 123 阅读 · 0 评论 -
JUC学习笔记|Lock接口
目录Lock如何使用synchronized与Lock的区别LockLock implementations provide more extensive locking operations than can be obtained using synchronized methods and statements. They allow more flexible structuring, may have quite different properties, and may support mu原创 2020-09-05 17:13:45 · 108 阅读 · 0 评论 -
JUC学习笔记|线程间通信
目录线程间通信生成者消费者模型虚假唤醒解决办法用Lock实现生成者消费者模型线程间定制化调用通信例子线程间通信生成者消费者模型/** * @author phd * @version 1.0 * @date 2020/8/31 22:36 * 生产者消费者模型练习 */class AirConditioner{ private int number = 0; public synchronized void increment() throws InterruptedEx原创 2020-09-05 17:13:02 · 188 阅读 · 0 评论 -
JUC学习笔记|list、set、map线程不安全问题
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2020-09-05 17:12:10 · 173 阅读 · 0 评论 -
JUC学习笔记|JUC是什么
目录JUC是什么二级目录三级目录JUC是什么java.util.concurrent在并发编程中使用的工具类二级目录三级目录原创 2020-09-05 17:10:58 · 753 阅读 · 0 评论