![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
shaowei6969
这个作者很懒,什么都没留下…
展开
-
线程池框架执行流程和原理分析
线程池工具类:单例线程池定长线程池延时线程池周期执行线程池大体执行流程如果达到核心线程数,则会把任务加入到队列里面,直到队列创建满了,如果还有任新的任务进来,那么就会创建临时线程,来处理当前任务,当创建临时线程和核心线程达到最大线程数时,就会走饱和策略,而饱和策略有四种默认是直接抛异常第二种由提交任务的线程来执行当前的任务第三种是将队列里的丢弃阻塞队列中靠最前的任务,并执行当前任务第四重是直接抛弃当前任务详细执行流程:当传进来一个任务时 执行addWorker()方法原创 2020-09-12 00:39:15 · 112 阅读 · 0 评论 -
JVM对synchronized的优化
在JDK1.6之后JVM对synchronized底层进行了优化,提高了并发访问性能得到提升:第一点:锁的膨胀升级过程是最大的优化第二点:锁的粗化第三点:锁的消除锁的膨胀升级过程:无锁–》偏向锁–》轻量级锁–》重量级锁(互斥锁)锁优化后一共有四种状态,无锁、偏向锁、轻量级锁、重量级锁。一开始从new出来的对象没有线程使用和加锁是无锁状态,然后随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重 量级锁,但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级偏向锁:偏向锁是Jav原创 2020-08-16 10:36:54 · 417 阅读 · 0 评论