Discuss / Python / 就那个pool的例子,为啥我的双核感觉像单进程?

就那个pool的例子,为啥我的双核感觉像单进程?

Topic source

电脑是双核4线程,这一点我重新确认过 上面pool的例子原封不动复制过来的,wingIde运行结果: Parent process 6892. Waiting for all subprocesses done... Run task 2 (7420)... Task 2 runs 2.17 seconds. Run task 1 (2616)... Task 1 runs 2.32 seconds. Run task 0 (5768)... Task 0 runs 1.48 seconds. Run task 4 (5768)... Task 4 runs 1.47 seconds. Run task 3 (7268)... Task 3 runs 2.93 seconds. All subprocesses done.

运行了几遍都是类似这样.感觉这是一个运行完再运行的下一个嘛!怎么回事呢?

我把这段代码在pycharm上跑了一下,发现运行结果又不一样.我的multiprocessing.cpucount()返回值是4(其实是返回并发线程数),但实际测试结果显示,不论我pool参数是几(比如n),pycharm上都能立刻执行n个进程,哪怕n=10也没问题.所以和老师说的并不相同.而wing上始终都是一个一个的运行,我猜这应该是ide的差别造成的,所以,有的时候ide不同可能运行结果也不同!++

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

一切以命令行为标准,毕竟正式运行是不在IDE里面的

果然命令行运行才有例子这种效果


  • 1

Reply