Java多线程并发
文章平均质量分 85
流星飘雨啊
这个作者很懒,什么都没留下…
展开
-
深入理解Java锁(Synchronized)
想要解决多线程问题,首先我们需要掌握Java锁的原理。我们常用锁Synchronized的方式一:方法锁1:方法锁锁的是该对象。例如: public static void main(String[] arr) { final Test1 test1 = new Test1(); for (int i = 0; i < 15; i++) { ...原创 2018-06-19 12:13:02 · 292 阅读 · 0 评论 -
深入理解Java线程池ThreadPoolExecutor
1:先看下线程池属性配置public ThreadPoolExecutor(int corePoolSize, //核心线程池个数 int maximumPoolSize, //最大线程池个数 long keepAliveTime, //非核心线程存活时间 ...原创 2018-07-18 16:37:07 · 852 阅读 · 0 评论 -
ThreadPoolExecutor使用的三种缓存队列详解(ArrayBlockingQueue+LinkedBlockingQueue+SynchronousQueue)
在使用线程池(ThreadPoolExecutor)时会用到这三种队列。以下是通过对源码的分析来了解各队列的原理。池线程的介绍柯林斯参考深入理解的Java的线程池的ThreadPoolExecutor的三种缓存队列的作用都是存放可运行的,用于线程池获取并执行运行方法。当队列为空,则让线程处于等待状态,加入队列则唤醒等待的线程继续执行。都继承extends AbstractQueue<...原创 2018-11-29 18:12:23 · 8324 阅读 · 0 评论 -
深入理解Java并发锁ReetrantLock
我们平时在项目中遇到线程安全问题,大多使用同步来解决同步问题,同步是隐式锁,它的加锁与释放,无需我们关注,虚拟机会处理。而ReetrantLock的加锁与释放都需要我们手动处理。下面我们将从源码角度来分析ReetrantLock原理。若有不足,欢迎大家留言,以便及时改正。一:ReetrantLock实现了锁接口,以及三个内部类,Sync,FairSync(公平锁),NonfairSync(非公...原创 2018-11-28 11:32:48 · 676 阅读 · 0 评论