Py直用多核?

抛问

Wilhelm Shen <[email protected]>
sender-time     Sent at 16:29 (GMT+08:00). Current time there: 4:50 PM. ✆
reply-to        [email protected]
to      python-cn`CPyUG`华蟒用户组 <[email protected]>
date    Tue, Jul 20, 2010 at 16:29
subject [CPyUG] 关于 python 多线程是否能用到多核的问题

这个实验很久以前做过,起几个线程,每个线程里面做空循环。 然后看能把多核用完吗。结果只有一个 cpu 100% 了。

好吧 GIL ……

前段时间又玩了下,结果多线程还真把我的双核给用完了。 用到 python2.5.5、python2.6.4、python2.7、 unladen swallow q3、pypy-jit1.3 。当然,结果都一样。

见附件。首先是单线程,只用了一个核 (另外一个核正在用于娱乐,所以还有一点点负载那)。

然后是多线程,两个核这就满了。

…… 大概空循环不会碰到 GIL 吧 _b

和赖神提了下,我哪里搞错了?

赖神也试了下,在他那里仍然只用了一个核。OK ……

CPU: AMD Athlon(tm) Dual Core Processor 5000B
(也就是 AMD 2.6GHz x 2)

面壁中。

pymulticorethread.png

测试脚本

   1 from thread import start_new_thread
   2 def loop():
   3        while 1:
   4                pass
   5 start_new_thread(loop, ())
   6 start_new_thread(loop, ())
   7 start_new_thread(loop, ())
   8 loop()

ZQ:小測

zoomq-2010-07-20-164715_927x251_scrot.png


反馈

创建 by -- ZoomQuiet [2010-07-20 08:55:44]

MiscItems/2010-07-20 (last edited 2010-07-20 08:55:44 by ZoomQuiet)