对CPUFE 美刑口务 由于CPU密集型任多的性质,导致CPU的使用率很高,如果线程池中的核心线程数量过多,会增加上下文切换的次数,带来额外的开销。因此, ,,考虑到CPU密集型任务因为某些原因而暂停,这个时候有额外的线程能确保CPU这个时刻不会浪费 还可以增加—个CPU上下文切换。一般情况下:线程池的核心线程数量等于CPU核心数+1。例如需要大量的计算,视频;染啊,仿真啊之类的。这个时候CPU就印足了劲在运行, ,这个时候切换线程,反而浪费了切换的时间,效率不高。打个比方,你的大脑是CPU,你本来就在一本心思地写作业,多线程口这时候就是要你写会作业,然后立刻敲一会代码,然后在P个图,然后在看个视频,然后再切换回作业。emmmm,过程中你还需要切换 (收起来作业,拿出电脑,打开VS..)那你的作业怕是要写到挂科。这个时候你就该一门心思地写作业。
对于IO密集型任务,由于IO密集型任务CPU使用率并不是很高,可以让CPU在等待1/0操作的时去处理别的任务,充分利用CPU。—般情况下:线程的核心线程数等于2CPU核心数。例如你需要陪小姐姐或者小哥哥聊天,还需要下载一个VS,还需要看博客。打个比方,小姐姐给你发消息了,回一下她,然后呢?她给你回消息肯定 宝需要时间,这个时候你就可以搜索VS的网站,先下安装包,然后一看,哎呦,她还没给你回消息,然后看会自己的博客。小姐姐终于回你了,你回一下她,接着看我的博客,这就是类似于10密集型。你可以在不同的“不烧脑”的工作之间切换,来达到更高的效率。而不是小姐姐不回我的信息。我就干等, 啥者不平, 就等,这个效率可想而知,也许,小姐姐根本就不会回复你。
对于混合型任务,由于包合2种类型的任务,故混合型任务的线程数与线程时间有关。在某种特定的情况下还可以将任务分为/0密集型任务和CPU密集型任务,分别让不同的线程池去处理。一般情况下:线程池的核心线程数-(线程等待时间/线程CPU时间+1)CPU核心数;