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