【发布时间】:2013-06-23 15:08:51
【问题描述】:
是否可以使用多处理/线程加速单个任务?我的直觉是答案是否定的。这是我所说的“单一任务”的一个例子:
for i in range(max):
pick = random.choice(['on', 'off', 'both'])
使用 10000000 的参数,在我的系统上完成大约需要 7.9 秒。
我基本掌握了如何使用多处理和线程处理多个任务。例如,如果我有 10 个目录,每个目录包含 X 个需要读取的文件,我可以使用创建 10 个线程。
我怀疑单个任务仅使用单个进程(任务管理器报告 CPU 使用率最低)。在这种情况下,有没有办法利用我的其他核心?还是提高 CPU/内存速度是获得更快结果的唯一方法?
【问题讨论】:
-
多处理可以提供帮助,一个进程中的多个线程并不多(关键字:“全局解释器锁定”又名“GIL”)
-
@Michael Butsher:您能否提供一个示例,说明我如何使用多处理分解我提到的代码?
-
@Michael Butscher:酷。我会调查 Pool.map :)
标签: python multithreading python-2.7 multiprocessing