我找到了很多例子,但不是我的。请帮帮我:
我有一个需要参数(URL)的函数,我需要同时多次调用这个函数(使用不同的参数)来得到类似的东西:
function started with param: rsync://.... (1)
function started with param: rsync://.... (2)
function started with param: rsync://.... (3)
....
function (k) with param rsync://....has finished
.....
function started with param: rsync://.... (n)
function (1) with param rsync://....has finished
....
function (n) with param rsync://....has finished
这些函数是独立的,它们不与任何常见对象或类似的东西(不包括导入)交互。我需要同时运行它们(其中n个)。它们如何完成的顺序并不重要。
答案 0 :(得分:2)
使用Threads
例如,您可以使用:
import threading
my_thread = threading.Thread(target=your_function, args=(), kwargs={}) # This can go inside a loop, providing different args each time.
my_thread.start()
访问答案顶部的链接以获取更多信息。
答案 1 :(得分:1)
如果你想对这个函数的内容保持自由,可以使用线程作为Raydel提及,或者如果函数应该是CPU绑定而不是IO绑定,则使用multiprocessing
。
如果你的任务只是调用子进程,你可以
sp = subprocess.Popen()
sp
,一种句柄poll()
他们直到完成