Play IT

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

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

code-devencyclopedia

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

Реальный паттерн threading: один процесс, общая память, start/join и lock. Нажмите «Пошагово» — увидите, что делает ОС на каждой строке.

КодPython · threading
import threading balance = 1000          # общая память процессаlock = threading.Lock() def export_report():    global balance    with lock:        balance -= 50     # критическая секция worker = threading.Thread(target=export_report)worker.start()            # ОС выделяет потокworker.join()             # главный ждёт workerprint(balance)
Память процесса и потоки

Один процесс, один главный поток

Переменная balance лежит в общем адресном пространстве. Потоков пока один.

Главный поток
UI / main()
Worker-поток
export_report()
  • balance = 1000
ОС: Программа уже запущена как процесс. Пока есть только главный поток — он владеет всей памятью процесса.

Шаг 1 из 6