##language:zh #pragma section-numbers off ##含有章节索引导航的 ZPyUG 文章通用模板 <> ## 默许导航,请保留 <> = Py直用多核? = ##startInc == 抛问 == {{{ Wilhelm Shen sender-time Sent at 16:29 (GMT+08:00). Current time there: 4:50 PM. ✆ reply-to python-cn@googlegroups.com to python-cn`CPyUG`华蟒用户组 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) }}} 面壁中。 {{attachment:pymulticorethread.png}} === 测试脚本 === {{{ #!python from thread import start_new_thread def loop(): while 1: pass start_new_thread(loop, ()) start_new_thread(loop, ()) start_new_thread(loop, ()) loop() }}} === ZQ:小測 === {{attachment:zoomq-2010-07-20-164715_927x251_scrot.png}} * 用足! * Ubuntu 10.04 i686 * Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) ##endInc ---- '''反馈''' 创建 by -- ZoomQuiet [<>]