Что переключается быстрее - потоки ли процессы в Python
Python
Senior
Мой Офис
Что переключается быстрее - потоки ли процессы в Python
Ответы
В Python потоки переключаются быстрее процессов, но с важными оговорками:
- Потоки легковесны и используют общее адресное пространство, что делает переключение контекста быстрее.
- Однако из-за GIL (Global Interpreter Lock) в CPython только один поток исполняет Python-код одновременно.
Пример с потоками:
```
import threading
def worker():
print("Thread working")
threads = [threading.Thread(target=worker) for _ in range(5)]
for t in threads:
t.start()
```
Пример с процессами:
```
from multiprocessing import Process
def worker():
print("Process working")
processes = [Process(target=worker) for _ in range(5)]
for p in processes:
p.start()
```
Ключевые моменты:
- Потоки быстрее создаются и переключаются
- Процессы используют отдельные интерпретаторы Python и избегают GIL
- Для CPU-задач процессы часто эффективнее, несмотря на накладные расходы