执行队列中的函数

时间:2010-07-18 17:52:27

标签: 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 for the function finish
time.sleep(10)

结果应该是

abcd
abcd

#after finish the first two function executions
abcd

所以,有一种方法可以不使用线程吗?

我的意思是一些glib功能来完成这项工作。

1 个答案:

答案 0 :(得分:2)

如果要避免线程,一个选项是使用多个进程。如果您使用的是python 2.6,请查看multiprocessing模块。如果是python 2.5,请查看pyprocessing

在多处理文档中注意“Process Pools”,它似乎可以满足您的要求:

  

可以创建一个进程池,它将执行使用Pool类提交给它的任务。

     

class multiprocessing.Pool([processes [,initializer [,initargs [,maxtasksperchild]]]])

     

一个进程池对象,它控制作业的工作进程池       可以提交。它通过超时回调支持异步结果       并有一个并行的地图实现。