118. Concurrency with concurrent.futures
1. Using ThreadPoolExecutor for Basic Task Execution
ThreadPoolExecutor for Basic Task Executionfrom concurrent.futures import ThreadPoolExecutor
def task(n):
return f"Task {n} completed."
with ThreadPoolExecutor(max_workers=3) as executor:
results = list(executor.map(task, range(5)))
print(results)2. Using ProcessPoolExecutor for CPU-Intensive Tasks
ProcessPoolExecutor for CPU-Intensive Tasksfrom concurrent.futures import ProcessPoolExecutor
import math
def compute_factorial(n):
return math.factorial(n)
with ProcessPoolExecutor(max_workers=3) as executor:
results = list(executor.map(compute_factorial, [5, 10, 15, 20]))
print(results)3. Submitting Tasks Individually
4. Using as_completed to Process Results as They Finish
as_completed to Process Results as They Finish5. Handling Exceptions in Concurrent Tasks
6. Cancelling Pending Tasks
7. Using ProcessPoolExecutor for Parallel File I/O
ProcessPoolExecutor for Parallel File I/O8. Mixing ThreadPoolExecutor with I/O Bound Tasks
9. Timing Concurrent Tasks
10. Using ProcessPoolExecutor for Large Dataset Processing
ProcessPoolExecutor for Large Dataset ProcessingLast updated