java并发编程10-异步模式

异步模式-工作线程

线程不足导致饥饿

有两个线程A,B,任务有两种,上菜和做菜,显然上菜要等待做菜,如果AB都在执行上菜,就没有更多的线程做菜了,这就导致了AB在死等,注意这不是死锁,
所以不同的任务类型应该用不同的线程池

创建多少线程

过小导致CPU不充分利用,过大导致上下文切换占用更多内存

CPU密集型运算

CPU核数+1个线程最好,+1是当某个线程由于缺页中断导致暂停的时候,额外的线程就能顶上去

IO密集型运算

核数* 期望CPU利用率 * (CPU计算时间+等待时间) / CPU计算时间


java并发编程10-异步模式
http://fightinggg.github.io/fluid/Q8OMU7.html
作者
fightinggg
发布于
2020年4月12日
许可协议