python while 1 然后pass会发生什么?

匿名 (未验证) 提交于 2019-12-02 22:51:30

下面的代码,会使32核linux服务器志强e5的cpu使用率达到3200%,然后别的什么程序都跑不了。

如果windows,cpu使用率会达到100%。这是计算方式有点区别。

个人计算机,除非你是8路 i9 9900k并联的超级计算机 ,可以确定的是任何价格在5万人民币以下的电脑都会把鼠标键盘鼠标卡得动不了。

import multiprocessingdef f():    while 1:        passif __name__ == '__main__':    for _ in range(32):        multiprocessing.Process(target=f).start()while 1然后里面什么都不做只写个pass,有的人说既然是pass,那么cpu肯定使用率很低,这个意识有点差,代码一直在while1 和 pass这两行无限快速跳来跳去,是一直要耗费cpu的。为了赌这个代码费不费cpu,还赢得了一个免费晚餐。发结果截图:这是windwos电脑,12核24线程的洋垃圾,cpu直接打满,鼠标卡得动弹不了。

linux的截图,这个是双路e5 2650,16和32线程。每个py进程都达到100%,直接使总cpu使用率达到3200%。单个python进程最高只能使用100%的cpu使用率,单个java最高可以使用3200%的cpu使用率,所以py在cpu密集型计算后开多进程非常有必要。

打这个赌得到免费晚餐,兼职太容易。while 1: pass虽然啥都不做,但是解释器需要一直循环运行了 这两句,怎么可能不要cpu?大家在设计代码时候要避免这样while 1无限死循环中运行代码,一定最少要sleep哪怕是0.00001 秒也会大大减少cpu使用率。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!