1
way2exluren 2015-02-26 14:31:03 +08:00 via Android 1
如果时间消耗在cpu上,那么python的多线程是不能提高效率的……如果是io,应该能提高点效率。
|
2
leozy2014 2015-02-26 14:34:31 +08:00
不懂程序,lz可以测试下就知道选哪个好了
|
3
MrGba2z OP |
4
mhycy 2015-02-26 14:38:30 +08:00
@MrGba2z
建议多进程解决,如果瓶颈是CPU,那么单一的Python进程最多只能充分利用单一核心的处理能力。 所以100线程和20线程区别不大 建议把消耗CPU的业务分离出来使用多进程解决 那么进程数等于CPU核心数就好了 |
6
virusdefender 2015-02-26 14:48:39 +08:00
楼上说的对 要考虑是io密集型还是cpu密集型
|
9
way2exluren 2015-02-26 14:52:23 +08:00
具体开多少个进程,要实测一下比较好。
cpu有多少“线程”,就开几个进程。 |
11
ericyue 2015-02-26 14:57:58 +08:00
python没有严格意义的线程吧 还不如多进程快
|
12
hahastudio 2015-02-26 15:13:25 +08:00 1
multiprocessing.Pool(processes=multiprocessing.cpu_count())
|
14
xdeng 2015-02-26 15:16:00 +08:00
其实你可以 看cpu 使用率
|
15
zerh925 2015-02-26 15:26:56 +08:00 1
cpu密集型:multiprocessing
io密集型:multithreading |
16
mathgl 2015-02-26 19:00:57 +08:00 via Android 1
如果你的代码只是单纯的计算,可以用lupa。在python调用luajit。这样可以用线程,绕过gil。
|
17
min 2015-02-26 20:43:16 +08:00 via iPhone
跑两遍就知道的事情,试验出来自己回答吧
|
18
ming2281 2015-04-01 13:39:56 +08:00
我一般倾向于使用多进程,进程数==CPU核心数,再管理好进程间通信
|