Жизненный цикл процесса
Интерактивное демо «Жизненный цикл процесса» — раздел Энциклопедия · Код и разработка.
Как создаётся и живёт процесс
multiprocessing: изолированная память, обмен через Queue (IPC). Сравните с потоком — здесь нет общей переменной balance.
КодPython · multiprocessing
from multiprocessing import Process, Queuedef worker(out_queue):result = {"status": "ok", "rows": 100_000}out_queue.put(result) # IPC, не общая переменнаяif __name__ == "__main__":queue = Queue()child = Process(target=worker, args=(queue,))child.start() # новый процесс ОСdata = queue.get() # ждём сообщениеchild.join()print(data["rows"])
Два адресных пространства
Родительский процесс
Queue() — канал обмена через ОС, не "общая RAM".
Родитель
- queue
- переменные main
ОС: Один процесс = своё адресное пространство. Переменные родителя недоступны дочернему напрямую.
Шаг 1 из 6