如何多次运行命令?

时间:2020-11-02 23:33:35

标签: python python-3.x loops agent-based-modeling

我正在基于代理的模型上工作,我想运行以下命令1,000次:

model = MyModel()
for i in range(100):
    model.step()

我决定使用while循环:

repetition = 0  
maxRepetition = 1000
while repetition <= maxRepetition: 
    model = MyModel()
    for i in range(100):
        model.step()    
    repetition += 1  

尽管如此,完成此循环仍需要大量时间(超过1小时)。有人可以推荐我一个更有效的程序吗?

1 个答案:

答案 0 :(得分:1)

如果model.step()不需要迭代执行,则可以使用threadingasynciomultiprosessing之类的库。

import multiprocessing

def run_model(n):
    model = MyModel()
    for i in range(100):
        model.step

with multiprocessing.Pool() as pool:
    pool.map(run_model, list(range(1000)))

来源:https://realpython.com/python-concurrency/

相关问题