Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import sleep
- from multiprocessing import Array, Pool
- progress_array = None
- def init_progress_counter(num_processes):
- global progress_array
- progress_array = Array('i',
- [0 for _ in range(num_processes)],
- lock=False)
- def current_progress():
- return sum(progress_array)
- def update_progress(process_idx, value):
- progress_array[process_idx] = value
- def fn(data):
- process_idx, d = data
- for idx, i in enumerate(d):
- update_progress(process_idx, idx + 1)
- print('\r{} '.format(current_progress()), end='')
- sleep(.001)
- if __name__ == '__main__':
- num_processes = 4
- init_progress_counter(num_processes)
- pool = Pool(num_processes)
- mul = 10000
- data = [(i, list(range(i * mul, mul * (i + 1))))
- for i in range(num_processes)]
- pool.map(fn, data)
Add Comment
Please, Sign In to add comment