Junior — Middle
What types of multitasking and parallelism are implemented in Python, and how are they applied?
sobes.tech AI
Answer from AI
Python implements several types of multitasking and parallelism:
-
Threads (Threading)
- Allow multiple threads to run within a single process.
- Due to GIL (Global Interpreter Lock), only one Python thread executes at a time in standard CPython, but threads are useful for I/O operations.
-
Multiprocessing
- Creating multiple processes, each with its own memory.
- Bypasses GIL limitations and allows code to run in parallel on multiple CPU cores.
-
Asynchronous programming (asyncio)
- Enables writing non-blocking code using coroutines.
- Efficient for a large number of I/O operations.
Application:
- Threads are suitable for I/O-intensive tasks.
- Multiprocessing is for CPU-intensive tasks.
- Asyncio for scalable network applications.
Example of using multiprocessing:
from multiprocessing import Pool
def f(x):
return x*x
with Pool(4) as p:
print(p.map(f, [1, 2, 3, 4]))