1个CPU、4个核intel超线程技术,可看到8个核,但我只开4个进程,每个进程负责整个任务的四分之一的计算任务和单个进程,跑起来的效率怎么差不多呢?
2 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
先给个公式吧。所需线程数=CPU可用核心数/(1-阻塞系数)其中计算密集型阻塞系数趋向于0,IO密集趋向于1。具体需要通过实验来确定。所以,你现在这种情况。所需线程数=8/(1-0)=8,应该用8个线程来试试。而你这里只用了4个,虽然如此,性能还是应该比单线程要好,因为毕竟由4个核在分担计算量。但是,你却发现没有多大区别,我只能认为,你没有书写正确的多线程逻辑,造成名义上是多线程,实际上是串行的情况。
添加回答
举报
0/150
提交
取消
