execute functions in a queue
i have a example who should show what i'd like to do
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)
the result should be
abcd
abcd
#after finish the first two function executions
abcd
so, there is a way to do that without use thread?
i mean some glib function to do this job.
If you want to avoid threads, one option is to use multiple processes. If you're on python 2.6, take a look at the multiprocessing module. If python 2.5, look at pyprocessing.
Note "Process Pools" in the docs for multiprocessing, which seem to handle your requirements:
One can create a pool of processes which will carry out tasks submitted to it with the Pool class.
class multiprocessing.Pool([processes[, initializer[, initargs[, maxtasksperchild]]]])
A process pool object which controls a pool of worker processes to which jobs can be submitted. It supports asynchronous results with timeouts and callbacks and has a parallel map implementation.
精彩评论