One powerful tool in Python3 for speeding up applications that involve significant amounts of I/O is the ThreadPoolExecutor from the concurrent.futures module. The concurrent.futures module can help ...
⚡ ThreadPoolExecutor Runs tasks in threads, same process. Good for I/O-bound work: network requests, DB calls, file reads/writes. Threads can switch while waiting → good concurrency. Bad for CPU-heavy ...
There are many workflows that require interweaving async and non async (CPU intensive) blocking code. These cannot each be split up into separate tasks because there are locally stored files involved.