JAVA 并发编程 线程池

1、 Single Thread Executor : 只有一个线程的线程池,因此所有提交的任务是顺序执行,
代码: Executors.newSingleThreadExecutor()

2、 Cached Thread Pool : 线程池里有很多线程需要同时执行,老的可用线程将被新的任务触发重新执行,如果线程超过60秒内没执行,那么将被终止并从池中删除,
代码:Executors.newCachedThreadPool()

3、 Fixed Thread Pool : 拥有固定线程数的线程池,如果没有任务执行,那么线程会一直等待,
代码: Executors.newFixedThreadPool(4)
在构造函数中的参数4是线程池的大小,你可以随意设置,也可以和cpu的核数量保持一致,获取cpu的核数量int cpuNums = Runtime.getRuntime().availableProcessors();

4、 Scheduled Thread Pool : 用来调度即将执行的任务的线程池,可能是不是直接执行, 每隔多久执行一次… 策略型的
代码:Executors.newScheduledThreadPool()

5、 Single Thread Scheduled Pool : 只有一个线程,用来调度任务在指定时间执行,代码:Executors.newSingleThreadScheduledExecutor()


• FixedThreadPool:定长线程池,提交任务时创建线程,直到池的最大容量,如果有线程非预期结束,会补充新线程
• CachedThreadPool:可变线程池,它犹如一个弹簧,如果没有任务需求时,它回收空闲线程,如果需求增加,则按需增加线程,不对池的大小做限制
• SingleThreadExecutor:单线程。处理不过来的任务会进入FIFO队列等待执行
• SecheduledThreadPool:周期性线程池。支持执行周期性线程任务
其实,这些不同类型的线程池都是通过构建一个ThreadPoolExecutor来完成的,所不同的是corePoolSize,maximumPoolSize,keepAliveTime,unit,workQueue,threadFactory这么几个参数。具体可以参见JDK DOC。


https://github.com/itning/BigData/tree/master/src/main/java/top/itning/concurrent

<p> <span style="color:#E53333;">课程介绍:</span> </p> <p> <br /> </p> <p style="color:#353535;"> 对于一个Java程序员而言,<strong>能否熟练掌握并发编程是判断他优秀与否的重要标准之一</strong>。因为并发编程Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,更为考验一个程序员的内功。 </p> <p style="color:#353535;"> 那到底应该怎么学习并发编程呢?Java SDK的并发工具包有很多,是要死记硬背每一个工具的优缺点和使用场景吗?当然不是,想要学好并发编程,你需要从一个个单一的知识和技术中“跳出来”,高屋建瓴地看问题,并逐步建立自己的知识体系。 </p> <p style="color:#353535;"> 本课程希望能够帮助你建立起一张处理并发问题的全景图,让你能够彻底理解并发问题的本质所在。同时,课程还会深入介绍Java并发编程技术背后的逻辑关系以及应用场景,助你能够游刃有余地游走在这些技术之中。 </p> <p style="color:#353535;"> <br /> </p> <p> <span style="color:#E53333;">课程核心知识点:</span> </p> <p> <span>1. 线程安全性分析,主要内容包括原子性、可见性、有序性等分析。以及Atomic包; CAS算法、Synchronized、Lock、Happens-before等。</span> </p> <span>2. 线程的安全性手段,ThreadLocal、同步容器、并发容器、J.U.C包等</span><br /> <span>3. AQS以及其他J.U.C组件,如CountDownLatch、Semaphore、CycliBarrier、ReentrantLock</span><br /> <span>4. 线程的原理</span><br /> <p> <span>5. ConcurrentHashMap等</span> </p> <p> <span><br /> </span> </p> <p> <span style="color:#E53333;">课程大纲:</span> </p> <p> <span><img src="https://img-bss.csdnimg.cn/202006050424053986.png" alt="" /><br /> </span> </p>
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页