I have многообразный конечный threads running from different windows in ubuntu trying to write to the same file.
I would like to lock the file конечный путь while writing so that the other thread (s) существуешь to wait to write till the lock is released. How do I do this?
Используя flock
, вероятно, самый легкий путь к трем конкурирующим сценариям оболочки. Давайте предположим, что у Вас есть единственный путь к файлу блокировки, названному /run/lock/myapp
.
# in terminal 1
flock /run/lock/myapp sleep 10
# in terminal 2
flock /run/lock/myapp echo "hello"
при выполнении их приблизительно в то же время (первое первое, хотя) второе будет ожидать за 10 секунд до выполнения.
, Если Вы глубоки на другом языке программирования, будут другие способы обработать это лучше.