32 lines
759 B
Python
32 lines
759 B
Python
"""
|
|
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()
|