Java 多线程 并发 整理

推荐系列:随笔分类 - Java并发编程

做项目涉及到的并发,先快速了解。之后再补充基础。

import java.util.concurrent.TimeUnit;//√
import java.util.concurrent.atomic.AtomicLong;//√
import java.util.concurrent.ConcurrentHashMap;//√
import java.util.concurrent.ArrayBlockingQueue;//√
import java.util.concurrent.ExecutorService;//√
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadPoolExecutor;//√
import java.util.concurrent.atomic.AtomicInteger;//√

import java.util.Timer;//√
import java.util.TimerTask;//√

import com.lmax.disruptor.*;
import com.lmax.disruptor.EventFactory;
import com.lmax.disruptor.WorkHandler;

并发集合:

java多线程之并发集合 ArrayBlockingQueue  

ConcurrentHashMap原理分析    ConcurrentHashMap总结

定时任务 Timer类

java并发之TimeUnit理解

java多线程之Timer

java多线程之ThreadPoolExecutor  

Java线程池使用说明

Java并发编程:线程池的使

    ExecutorService readThreadPool= new ThreadPoolExecutor(config.getReaderThreadPoolSize(),
               config.getReaderThreadPoolMaxSize(),
               THREAD_POOL_ACTIVE_TIME,
               TimeUnit.SECONDS,
               new ArrayBlockingQueue(config.getReaderTaskQueueSize()),
               r -> {
   Thread thread = new Thread(r);
   thread.setName("xdict-read-thread-" + this.dictTypeEnum + "-" + readThreadSequence.getAndIncrement());
   return thread;
},new ThreadPoolExecutor.CallerRunsPolicy());

Java 多线程 并发 整理_第1张图片 继承关系

构造函数的参数说明:

核心池大小:开始创建线程池时,默认情况,线程池中的线程数为零,当有任务来之后,创建一个线程执行任务,当线程池中的线程数达到核心池大小时,将任务放到缓存队列中。

maximumPoolSize:线程池最大线程数,这个参数也是一个非常重要的参数,它表示在线程池中最多能创建多少个线程;

解决java.util.concurrent.RejectedExecutionException

java多线程 ThreadPoolExecutor 策略的坑


并发框架Disruptor


生产者消费者模式-Java实现

Disruptor 极速体验


你可能感兴趣的:(Java 多线程 并发 整理)