美文网首页
线程池的数目确定

线程池的数目确定

作者: 杀小贼 | 来源:发表于2019-12-12 10:49 被阅读0次

线程池究竟设成多大是要看你给线程池处理什么样的任务,任务类型不同,线程池大小的设置方式也是不同的。
任务一般可分为:CPU密集型、IO密集型、混合型,对于不同类型的任务需要分配不同大小的线程池。
CPU密集型任务 尽量使用较小的线程池,一般为CPU核心数+1。 因为CPU密集型任务使得CPU使用率很高,若开过多的线程数,只能增加上下文切换的次数,因此会带来额外的开销。
IO密集型任务 可以使用稍大的线程池,一般为2*CPU核心数。 IO密集型任务CPU使用率并不高,因此可以让CPU在等待IO的时候去处理别的任务,充分利用CPU时间。混合型任务 可以将任务分成IO密集型和CPU密集型任务,然后分别用不同的线程池去处理。 只要分完之后两个任务的执行时间相差不大,那么就会比串行执行来的高效。 因为如果划分之后两个任务执行时间相差甚远,那么先执行完的任务就要等后执行完的任务,最终的时间仍然取决于后执行完的任务,而且还要加上任务拆分与合并的开销,得不偿失。

584866-20170526170508450-925520860.png

https://www.cnblogs.com/dennyzhangdd/p/6909771.html

相关文章

  • 线程池的数目确定

    线程池究竟设成多大是要看你给线程池处理什么样的任务,任务类型不同,线程池大小的设置方式也是不同的。任务一般可分为:...

  • JAVA并发梳理(五)线程池

    关于线程池的实现,各自的特点等稍后再补充。现在先总结下如何合理地设置线程池的大小。 线程池中线程的数目是跟线程池所...

  • 多线程 -- 线程池

    多线程 -- 线程池 1. 作用 重用线程, 减少线程创建销毁带来的开销; 限制最先线程并发数目, 避免大量线程之...

  • 线程池--拒绝策略RejectedExecutionHandle

    当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒...

  • 线程池 | 拒绝策略 | RejectedExecutionHa

    当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒...

  • 实现根据key分片的线程池-ShardThreadPoolExe

    实现一个线程池,该线程池可根据key来确定让哪一个线程来执行。该线程池是固定大小的线程池,初始化后不可改变线程的数...

  • 线程池

    线程池执行过程 如果当前线程池中的线程数目小于corePoolSize,则每来一个任务,就会创建一个线程去执行这个...

  • 2、ios下如何实现指定线程数目的线程池?

    ios下如何实现指定线程数目的线程池? 1、GCD的信号量机制(dispatch_semaphore) 信号量是一...

  • KafkaScheduler

    KafkaScheduler用于启动定时任务,根据配置的backgroundThreads的数目初始化线程池 ex...

  • Java设置线程池数量

    如果是CPU密集型应用,则线程池大小设置为N+1 如果是IO密集型应用,则线程池大小设置为2N+1 最佳线程数目 ...

网友评论

      本文标题:线程池的数目确定

      本文链接:https://www.haomeiwen.com/subject/qrizgctx.html