Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.1k views
in Technique[技术] by (71.8m points)

为什么说线程太多,cpu切换线程会浪费很多时间?

一直不明白一件事情,说线程不宜开得太多,太多的线程会导致线程频繁切换,消耗cpu时间。但是对于操作系统来说,运行当中的线程肯定是大于1个,所以cpu也是一直在切换的。10个运行中的线程和20个运行中的线程,有什么区别?反正cpu都是一直在切换,这里假设线程的优先级都是一样的,并且都还是按照cpu的时间片轮转来切换线程。

第一种情况,10个运行中的线程a1-a10。cpu在a1-a10来回切换,切换了一轮,又重a1开始,重复切换,不断循环(假设任务一直执行)。

第二种情况,20个运行中的线程b1-b20。cpu在b1-b20来回切换,切换了一轮,又重b1开始,重复切换,不断循环(假设任务一直执行)。

以上两种情况对于cpu来说,都是一直在切换,在线程切换上消耗的时间不是一样的?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

我自己写了个回答:
https://www.cnblogs.com/ismal...


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...