![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
文章平均质量分 71
清风浊酒歌年少i
这个作者很懒,什么都没留下…
展开
-
线程池原理与自定义线程池
线程池执行原理与自定义线程池日常记录(一)丶使用线程池的优点: 池化技术应用:线程池、数据库连接池、http连接池等等。 池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制、管理资源的策略。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。(二)丶使用线程池的好处:  原创 2021-11-27 06:01:30 · 356 阅读 · 0 评论 -
BlockingQueue(堵塞队列)
BlockingQueue(堵塞队列)日常记录常见堵塞队列:BlockingQueue:堵塞队列DelayQueue:死信队列ArrayBlockingQueue:数组堵塞队列LinkedBlockingQueue:链表堵塞队列ConcurrentLinkedQueue:并发链表堵塞队列(线程安全)文档介绍:一丶ArrayBlockingQueue 一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是原创 2021-11-26 13:07:58 · 278 阅读 · 0 评论 -
Semaphore(信号灯)
Semaphore(信号灯)文档解释: 一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。 此类的构造方法可选地接受一个公平 参数。当设置为 false 时,此类不对线程原创 2021-11-26 08:50:32 · 174 阅读 · 0 评论 -
CyclicBarrier (循环栅栏)
CyclicBarrier (循环栅栏)日常记录文档解释: 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。 CyclicBarrier 支持一个可选的 Run原创 2021-11-26 08:43:28 · 194 阅读 · 0 评论 -
CountDownLatch - 线程减少计数
CountDownLatch(线程减少计数)日常记录文档解释: 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果原创 2021-11-26 08:36:07 · 309 阅读 · 0 评论 -
ReadWriterLock(读写锁)
ReadWriterLock(读写锁)日常记录优点:防止,在多线程下,读写顺序混乱缺点:写数据时,一次,只允许一个线程写,但是允许多个线程读。读数据时,允许多个线程读,但是不允许线程写数据,只有读取完了,才能写数据缺点原因:出现写锁的降级,为读锁(写锁可以降级,读锁读锁不可以)写锁降级顺序:获取写锁----》获取读锁----》释放写锁-----》释放读锁import java.util.HashMap;import java.util.concurrent.TimeUnit;imp原创 2021-11-26 08:22:07 · 647 阅读 · 0 评论 -
可重入锁-死锁实现
可重入锁:死锁(日常记录)死锁两种 常见方式:synchronized:死锁ReentrantLock:死锁(不公平锁)import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 死锁规则:多个线程去争原创 2021-11-26 03:06:08 · 314 阅读 · 0 评论