final concurrency examples
This commit is contained in:
31
futures/demo_executor_submit.py
Normal file
31
futures/demo_executor_submit.py
Normal file
@@ -0,0 +1,31 @@
|
||||
"""
|
||||
Experiments with futures
|
||||
"""
|
||||
|
||||
from time import sleep, strftime
|
||||
from concurrent import futures
|
||||
|
||||
def display(*args):
|
||||
print(strftime('[%H:%M:%S]'), end=' ')
|
||||
print(*args)
|
||||
|
||||
|
||||
def loiter(n):
|
||||
msg = '{}loiter({}): doing nothing for {}s...'
|
||||
display(msg.format('\t'*n, n, n))
|
||||
sleep(n)
|
||||
msg = '{}loiter({}): done.'
|
||||
display(msg.format('\t'*n, n))
|
||||
return n * 10
|
||||
|
||||
|
||||
def demo_submit():
|
||||
executor = futures.ThreadPoolExecutor(3)
|
||||
future_list = [executor.submit(loiter, n) for n in range(5)]
|
||||
display('done?', [future.done() for future in future_list])
|
||||
display('Waiting for results...')
|
||||
for i, result in enumerate(future.result() for future in future_list):
|
||||
display('result[{}]: {}'.format(i, result))
|
||||
|
||||
|
||||
demo_submit()
|
||||
Reference in New Issue
Block a user