
1 way2exluren 2015-02-26 14:31:03 +08:00 via Android 如果时间消耗在cpu上,那么python的多线程是不能提高效率的……如果是io,应该能提高点效率。 |
2 leozy2014 2015-02-26 14:34:31 +08:00 不懂程序,lz可以测试下就知道选哪个好了 |
3 v2gba OP |
&nbp; 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 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 cpu密集型:multiprocessing io密集型:multithreading |
16 mathgl 2015-02-26 19:00:57 +08:00 via Android 如果你的代码只是单纯的计算,可以用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核心数,再管理好进程间通信 |