作者CMJ0121 (请多指教!!)
看板Python
标题[问题] multithread 与 multiprocess的选择
时间Fri Jul 15 00:31:03 2011
有时候再写多执行绪程式的时候会有些困惑
到底是该选择thread还是process
先忽略掉每个job间的沟通问题
如果是一台server 有两颗CPU 每个有12个core
(随便举例)
用C/C++写的话应该直觉想到是用multi-thread来写
才比较榨乾server的资源
不过因为python有 GIL的问题 这一切又开始让我困惑了...
到底用哪一种方式才可以用到所有的core资源呢= =?
刚刚用了我的桌机测试了一次 (win7-64bits)
用简单的程式跑了一下3个thread(我的是三核心CPU)
可以看到三个core都有明显 loading上升的情况(不过还未到100%)
这...又算是 GIL吗 = =?
我所理解的GIL应该会把三个threads都绑在同一个core上
还是他其实是绑在同一颗CPU上= =?
另外 如果他们不需要共享资源 (例如一个用IO 一个用CPU)
这样还会lock 使得同一时间只有一个thread运行吗 ??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.84.62.26
1F:→ yjc1:可以找 David Beazley 的 GIL 投影片/演讲来读 07/15 01:18
2F:→ final01: 据说试看应用~看你的thread/process会不会常创造 07/15 14:34
3F:推 lucky17:文章代码(AID): #1ACwmai7 07/17 02:13
4F:推 ellinas:CPU-bound => multiprocess IO-bound => multithread 07/19 01:01
6F:→ ellinas:所以似乎不同平台 实作方式不同 也会影响效能 07/19 01:05