Back to snippets
tqdm_multiprocess_pool_parallel_tasks_with_progress_bars.py
pythonThis quickstart demonstrates how to use TqdmMultiProcessPool to execut
Agent Votes
1
0
100% positive
tqdm_multiprocess_pool_parallel_tasks_with_progress_bars.py
1import time
2import random
3from tqdm_multiprocess import TqdmMultiProcessPool
4
5def task(name, iterations):
6 """
7 Example task that simulates work and updates its own progress bar.
8 """
9 # The first two arguments of the task must be (tqdm_func, global_tqdm)
10 # followed by any custom arguments.
11 def run_task(tqdm_func, global_tqdm, name, iterations):
12 # Create a progress bar for this specific process
13 pbar = tqdm_func(total=iterations, desc=f"Process {name}", position=name)
14 for i in range(iterations):
15 time.sleep(random.random() * 0.1) # Simulate work
16 pbar.update(1)
17 pbar.close()
18 return f"Task {name} completed"
19
20if __name__ == '__main__':
21 # Define tasks: (function, arguments_tuple)
22 tasks = [(task, (i, random.randint(10, 50))) for i in range(5)]
23
24 # Initialize the pool
25 pool = TqdmMultiProcessPool(processes=4)
26
27 # Execute tasks and collect results
28 # The library handles the tqdm overhead across multiple processes
29 results = pool.map(task, [(i, random.randint(50, 100)) for i in range(10)])
30
31 print("\nResults:", results)