- Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathlesson06_callback.py
More file actions
Latest commit
34 lines (31 loc) · 1017 Bytes
/
Copy pathlesson06_callback.py
File metadata and controls
34 lines (31 loc) · 1017 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# SuperFastPython.com
# example of callback function for a one-off async task
fromrandomimportrandom
fromtimeimportsleep
frommultiprocessing.poolimportPool
# custom function to be executed in a child process
defresult_callback(return_value):
# report a message
print(f'Callback got: {return_value}', flush=True)
# task executed in a worker process
deftask(identifier):
# generate a value
value=random()
# report a message
print(f'Task {identifier} executing with {value}',
flush=True)
# block for a moment
sleep(value)
# return the generated value
returnvalue
# protect the entry point
if__name__=='__main__':
# create and configure the multiprocessing pool
withPool() aspool:
# issue tasks to the multiprocessing pool
result=pool.apply_async(task, args=(0,),
callback=result_callback)
# close the multiprocessing pool
pool.close()
# wait for all tasks to complete
pool.join()