理论上,比如8核CPU可以同时运行8个thread,但是一般运行多少线程比较合适呢?
我觉得应该大于8个,因为可能有线程空闲,但是太多的线程会有很大的钱程切换成本和占有太多内存。根据大家的经验,线程数应该怎么确定?
一般可以先以两倍cpu数量的线程试试,即16个。然后再性能优化调整。
一般要看CPU是多少核的。并不是开的越多越好。比如双核CPU,假如两个线程(主线程和新创建的线程)够用了,就最好只开两到4个,开多了速度反而可能会下降,因为CPU切换线程的开销是很大的(当然,切换进程的开销更大)。一般来说,一个进程里的线程数为CPU核数的1到2倍比较合适
这个是一个综合的衡量,cpu内核数量、线程的任务频度、资源共享等等,
任务重的线程肯定要预算一个单独的cpu内核,任务轻就可以适当的共享一个cpu内核