Как работает copy-on-write (COW) в Python и в каких случаях он применяется?
Ответ ⬇️
Copy-on-write (COW) — это оптимизация, при которой объект копируется только при попытке его изменения. В Python это особенно заметно при использовании fork() в многопроцессных программах: дочерний процесс получает копию памяти родительского процесса, но реальные копии данных создаются только при их изменении.
Это помогает эффективно использовать память при работе с процессами, но может привести к неожиданным накладным расходам, если изменять большие объёмы данных после fork().
Пример использования ⚙️
import os
data = [1] * 10**6 # Большой список
pid = os.fork()
if pid == 0: # Дочерний процесс
data[0] = 42 # Копирование происходит только здесь!
print("Дочерний процесс завершён")
else:
print("Родительский процесс")
Python Learning 👩💻