В чем отличие потоков от процессов

Python Junior Без компании
В чем отличие потоков от процессов
Ответы
Потоки (threads) и процессы (processes) — это способы выполнения кода параллельно, но с ключевыми различиями: - **Память**: Потоки разделяют память процесса, в котором они созданы, что упрощает обмен данными, но требует синхронизации (например, через `threading.Lock`). Процессы имеют независимую память, обмен данными сложнее (используют `multiprocessing.Queue`, `Pipe` или shared memory). - **GIL**: В Python потоки ограничены Global Interpreter Lock (GIL), что мешает настоящему параллелизму для CPU-bound задач. Процессы обходят GIL, так как у каждого свой интерпретатор. - **Создание**: Потоки легче (меньше накладных расходов), процессы тяжелее, но изолированы. Пример с потоками: ``` import threading def worker(): print("Thread working") t = threading.Thread(target=worker) t.start() t.join() ``` Пример с процессами: ``` from multiprocessing import Process def worker(): print("Process working") p = Process(target=worker) p.start() p.join() ``` Выбор зависит от задачи: потоки для I/O-bound, процессы для CPU-bound.