我有一些执行非冲突任务的python代码,这种并行性不会导致任何竞争条件。我只是想提高处理速度,我有4个文件,而不是一次读取一个文件,我想打开所有4个文件,同时读取/编辑其中的数据
我在这里读到了一些问题,详细说明了由于全局解释器锁,python中的多线程是不可能的,但是多处理解决了这个问题。作为记录,我的代码做的正是它的本意,当我在不同的终端中从终端运行它四次时-我猜这是“多处理”,但是我想要一个更干净的编程解决方案
数据集很大,因此可以假设一旦给解释器一个“进程”,它就基本上被锁定了很长一段时间: 示例:
import multiprocessing
def worker():
while true:
#do some stuff
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
这给了我一个问题,上面的程序将执行第一个进程,然后再实际地启动第二个进程,直到第一个进程的执行完成,使它们一个接一个地运行
有没有一种方法可以有效地执行worker X的次数,或者同时启动它们,或者在它们全部启动之前阻止它们运行我的操作系统可以访问8个内核
目前没有回答
相关问题 更多 >
编程相关推荐