Python 在队列中执行函数
我举了一个例子,说明我想做什么Python 在队列中执行函数,python,Python,我举了一个例子,说明我想做什么 queue = 2 def function(): print 'abcd' time.sleep(3) def exec_times(times): #do something function() def exec_queue(queue): #do something function() exec_times(3) #things need be working while it waiting fo
queue = 2
def function():
print 'abcd'
time.sleep(3)
def exec_times(times):
#do something
function()
def exec_queue(queue):
#do something
function()
exec_times(3)
#things need be working while it waiting for the function finish
time.sleep(10)
结果应该是
abcd
abcd
#after finish the first two function executions
abcd
那么,有没有一种不用线程就能做到这一点的方法
我指的是一些能说会道的函数来完成这项工作。如果你想避免线程,一个选择是使用多个进程。如果您使用的是Python2.6,请查看该模块。如果是python 2.5,请查看 注意多处理文档中的“”,它似乎可以满足您的需求: 可以创建一个进程池,这些进程将执行使用pool类提交给它的任务 类multiprocessing.Pool([processs[,initializer[,initargs[,maxstasksperchild]]])) 一个进程池对象,用于控制作业所指向的工作进程池 可以提交。它支持带有超时和回调的异步结果 并具有并行映射实现
您将需要某种线程/多进程模型来进行并发执行。我想使用glib.timeout\u add(interval,callback,…)之类的方法来代替每个间隔执行函数,它将一直监视函数直到它完成,然后调用callback。感谢回复注意,参数maxstasksperchild仅在Python 2.7中可用