1、synchronized
(1)重量锁,轻量锁,偏向锁(synchronized自带的优化)
(2)锁的粒度
2、Lock锁
Lock锁可灵活控制锁的位置,优化点:将ReentrantLock变成ReentrantReadWriteLock读写锁。ReentrantReadWriteLock中的读锁是并行执行的。
3、一些经验
4、线程池优化策略
1、参数说明
2、执行顺序
、
3、jdk自带的四种策略
(1)ThreadPoolExecutor.AbortPolicy 丢弃任务,并抛出 RejectedExecutionException 异常。
(2)ThreadPoolExecutor.CallerRunsPolicy:该任务被线程池拒绝,由调用 execute方法的线程执行该任务。
(3)ThreadPoolExecutor.DiscardOldestPolicy : 抛弃队列最前面的任务,然后重新尝试执行任务。
(4)ThreadPoolExecutor.DiscardPolicy,丢弃任务,不过也不抛出异常。
当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒绝策略。
4、优化经验
5、并发容器的选择
6、上下文切换优化
1、
2、
网友评论