Junior — Middle
Share your experience with multithreading and parallel task execution
sobes.tech AI
Answer from AI
In Python, for multithreading, I usually use the threading module when tasks involve input/output, such as network requests or file reading. For compute-intensive tasks, I use the multiprocessing module to bypass the GIL limitation and parallelize work across multiple processes.
Here's an example using threading for running multiple functions in parallel:
import threading
def task(name):
print(f"Task {name} started")
# simulate work
import time
time.sleep(2)
print(f"Task {name} completed")
threads = []
for i in range(3):
t = threading.Thread(target=task, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()
I also used concurrent.futures for convenient management of thread or process pools, which simplifies writing parallel code and handling results.