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