TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #1540 1.93K
Python: как не дать нескольким процессам одновременно полезть в один ресурс

В multiprocessing процессы работают параллельно и иногда пытаются одновременно изменить один и тот же ресурс.

Для таких случаев есть Lock:


from multiprocessing import Process, Lock

def printer(item, lock):
with lock:
print(item)


Дальше один и тот же lock передаётся всем процессам:


if __name__ == "__main__":
lock = Lock()

for item in ["tango", "foxtrot", 10]:
Process(
target=printer,
args=(item, lock)
).start()


Пока один процесс находится внутри with lock:, остальные ждут.

Это особенно полезно при работе с файлами, логами, общими структурами и другими ресурсами, где одновременная запись может привести к race condition.

И лучше использовать with lock:, а не вручную acquire() / release() — так блокировка гарантированно снимется даже при исключении.
  • 👍 6
  • 🔥 3
  • 🥰 1
More from @python_job_interview
  1. Sep 19, 2026✔️ Кто подключился к вашей сети? NetAlertX обнаруживает устройства и уведомляет об изменен…
  2. Sep 18, 2026✔️ QuiverAI выпустила обновление генератора векторной графики Во второе поколение семейств…
  3. Sep 17, 2026📚 Бесплатная книга по математике для Computer Science и Machine Learning - более 2200 стр…
  4. Sep 15, 2026🐍 Python: как найти изменённое поле во вложенном словаре Сравнение before == after покаже…
  5. Sep 15, 2026🔥 Один из лучших обучающих курсов на StepiK по SQL SQL можно знать годами и всё равно тер…
  6. Sep 13, 2026🐍 Python: type(x) == str или isinstance(x, str)? На первый взгляд разницы почти нет. Но о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →