2014-02-20 144 views
0

我发现了很多例子,但不是我的。请帮我在这里:在Python中同时调用不同参数的函数

我有需要一个参数(一个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个函数)。顺序如何完成并不重要。

+1

这是一个需求声明,而不是一个问题。 – NPE

+0

@NPE我需要找出使用的工具,所以这只是一个问题 – ka2m

回答

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

如果您希望保留关于此功能内容的免费功能,请使用Raydel提及的线程,或者如果功能应该是CPU绑定而非IO绑定,请使用multiprocessing

如果你的任务就是打电话给子进程,你可以

  • 开始sp = subprocess.Popen()
  • 子进程保持这种sp,类型的手柄,它
  • 那么他们在平行
  • 运行poll()他们直到他们完成
  • 然后你知道他们什么时候完成。
相关问题