![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发
文章平均质量分 82
墨鱼的s我
这个作者很懒,什么都没留下…
展开
-
Java线程池
如果当前运行的线程数已经等同于最大线程数了,新建线程将会使当前运行的线程超出最大线程数,那么当前任务会被拒绝,饱和策略会调用。如果向任务队列投放任务失败(任务队列已经满了),但是当前运行的线程数是小于最大线程数的,就新建一个线程来执行任务。如果当前同时运行的线程数量达到了最大线程数,且任务队列也已经满了,此时会对新提交的任务有一些处理策略。如果当前运行的线程数等于或大于核心线程数,但是小于最大线程数,那么就把该任务放入到任务队列里等待执行。原创 2023-09-27 09:55:38 · 94 阅读 · 0 评论 -
ReentrantLock原理
CountDownLatch 将state设置为count数,可以每次执行 countDown方法会用CAS让state减一,实质时释放掉一个锁,当state为0时会完全释放掉锁,让调用wait方法阻塞的线程进行执行。ReentrantLock中的Sync继承了AQS,实现了模板方法,通过FairSync继承Sync实现公平锁,通过NonfairSync继承Sync实现非公平锁。实现了Lock接口,是一个可重入且独占式的锁,与 synchronized 关键字类似,但更加灵活。但默认使用非公平锁。原创 2023-09-27 09:47:03 · 39 阅读 · 0 评论 -
线程池初解
如果当前运行的线程数已经等同于最大线程数了,新建线程将会使当前运行的线程超出最大线程数,那么当前任务会被拒绝,饱和策略会调用。如果向任务队列投放任务失败(任务队列已经满了),但是当前运行的线程数是小于最大线程数的,就新建一个线程来执行任务。如果当前同时运行的线程数量达到了最大线程数,且任务队列也已经满了,此时会对新提交的任务有一些处理策略。如果当前运行的线程数等于或大于核心线程数,但是小于最大线程数,那么就把该任务放入到任务队列里等待执行。原创 2023-09-26 15:20:33 · 32 阅读 · 0 评论