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中可用