Как переключаются потоки в Python
Python
Senior
Билайн
Как переключаются потоки в Python
Ответы
В Python потоки переключаются автоматически благодаря механизму GIL (Global Interpreter Lock). GIL позволяет выполняться только одному потоку за раз, но переключение между потоками происходит через определенные интервалы (ticks) или при блокирующих операциях (I/O, sleep и т.д.).
Пример переключения:
```
import threading
import time
def worker():
print("Поток начал работу")
time.sleep(1) # Здесь произойдет переключение на другой поток
print("Поток завершил работу")
threads = []
for _ in range(2):
t = threading.Thread(target=worker)
threads.append(t)
t.start()
for t in threads:
t.join()
```
Ключевые моменты:
- Переключение происходит автоматически
- GIL не дает выполняться нескольким потокам одновременно
- Эффективность потоков ограничена для CPU-bound задач
- Для истинного параллелизма лучше использовать multiprocessing