代码之家  ›  专栏  ›  技术社区  ›  killown

在队列中执行函数

  •  1
  • killown  · 技术社区  · 14 年前

    我举了一个例子来说明我想做什么

    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
    

    1 回复  |  直到 6 年前
        1
  •  2
  •   ars    14 年前

    如果要避免线程,一种选择是使用多个进程。如果您使用的是python2.6,请查看 multiprocessing pyprocessing .

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

    类multiprocessing.Pool([进程[,初始值设定项[,initargs[,maxstasksparchild]])

    一个进程池对象,它控制一个工作进程池 异步 超时 并且有一个并行的map实现。