Play IT

Жизненный цикл процесса

Интерактивное демо «Жизненный цикл процесса» — раздел Энциклопедия · Код и разработка.

code-devencyclopedia

Как создаётся и живёт процесс

multiprocessing: изолированная память, обмен через Queue (IPC). Сравните с потоком — здесь нет общей переменной balance.

КодPython · multiprocessing
from multiprocessing import Process, Queue def 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