并发编程系列之如何正确使用线程池?

Posted smileNicky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发编程系列之如何正确使用线程池?相关的知识,希望对你有一定的参考价值。

并发编程系列博客

并发编程系列之如何正确使用线程池?在上一章节的学习中,我们掌握了线程的基本知识,接着本博客会继续学习多线程中的线程池知识

1、线程是不是越多越好?

在学习多线程之前,读者可能会有疑问?如果单线程跑得太慢,那么是否就能多创建多个线程来跑任务?并发的情况,线程是不是创建越多越好?这是一个很经典的问题,画图表示一下创建很多线程的情况,然后进行情况分析。

  • 创建线程和销毁线程都是需要时间的,如果创建时间+销毁时间>执行任务时间就很不划算
  • 创建后的线程是需要内存去存放的,创建的线程对应一个Thread对象,对象是会占用JVM的堆内存的,根据jvm规范,一个线程默认最大栈大小为1M,这个栈空间也是需要从系统内存中分配的,所以线程越多,需要的内存就越多
  • 创建线程,

以上是关于并发编程系列之如何正确使用线程池?的主要内容,如果未能解决你的问题,请参考以下文章

并发编程系列之自定义线程池

Java面试系列之并发编程专题-Java线程池灵魂拷问

Java面试系列之并发编程专题-Java线程池灵魂拷问

并发编程系列之自定义可以命名的线程池工厂类

掌握系列之并发编程-1.并发基础

JUC并发编程 共享模式之工具 ThreadPoolExecutor -- 正确处理线程池异常