У меня есть вопрос о том, как flock()
работает, особенно в python. У меня есть модуль, который открывает последовательное соединение (через os.open()
). Мне нужно сделать эту тему безопасной. Это достаточно просто сделать потокобезопасным при работе в том же модуле, используя threading.Lock()
, но если модуль импортируется из разных мест, он ломается.
Я думал об использовании flock()
, но у меня возникают проблемы с поиском достаточной информации о том, как именно работает стадо. Я прочитал, что flock () разблокирует файл после его закрытия. Но есть ли ситуация, при которой файл останется открытым, если произойдет сбой Python?
А что именно разрешено использовать заблокированный файл, если установлен LOCK_EX
? Просто модуль, который заблокировал файл? Любой модуль, который был импортирован из сценария, который был первоначально запущен?