多线程
p393975269
甜蜜大橙
展开
-
ReentrantReadWriteLock的读读共享,读写互斥,写写互斥以及与CopyOnWrite机制的区别
ReentrantReadWriteLock读锁是一个共享锁,多个线程读读是共享的,通过获取读锁的源码看出Thread current = Thread.currentThread();//获取当前线程 int c = getState();//获取锁的状态 if (exclusiveCount(c) != 0 &&//判断是否为独占锁,为0,就是没有线程获取独占锁,返回false getExclusiveOwnerThread() != current)原创 2020-11-16 14:08:40 · 345 阅读 · 0 评论 -
定时线程池执行流程及源码详解
ScheduedThreadPoolExecutor流程及源码详解理解ScheduedThreadPoolExecutor的原理其实就是对任务的下次执行时间计算以及任务的入队,出队、删除的过程的理解首先看一下ScheduedThreadPoolExecutor的集成类图继承了ThreadPoolExecutor,具有了线程池的功能,实现了ScheduledExecutorService,具有了任务调度的功能,总体来说就是一个定时任务和延迟任务的线程池ScheduedThreadPoolExecu原创 2020-10-24 13:35:56 · 354 阅读 · 0 评论 -
线程池原理详解以及源码详解
线程池原理详解以及源码详解首先先看一下线程池的几个关键参数corePoolSize 核心线程数maximumPoolSize最大线程数=核心线程数 + 非核心线程数keepAliveTime 非核心线程数存活时间unit 存活时间单位workQueue 阻塞队列Executors.defaultThreadFactory() 创建线程池的工厂defaultHandler 拒绝策略// runState is stored in the high-order bits 大小一次递减p原创 2020-10-15 16:01:58 · 158 阅读 · 0 评论