Синхронизация операций загрузки и выгрузки в распределенной файловой системе - PullRequest
0 голосов
/ 27 сентября 2018

Мне было дано задание реализовать сервис загрузки и выгрузки файлов, такой как Dropbox, используя сокет-программирование в python.Я делаю сервер и его операции (загрузка, выгрузка, переименование и удаление) многопоточными, создавая поток для каждой операции.Однако меня интересует проблема, которая возникает, когда несколько клиентов пытаются получить доступ к одному и тому же файлу, один клиент загружает, а другой загружает (изменило состояние файла).Теперь поток загрузки client1 должен быть заблокирован до тех пор, пока поток загрузки client2 не выполнится, чтобы сохранить состояние файла для пользователей (общая файловая система).Я также думаю, что использование «замков» не решит эту проблему.Что если поток загрузки client1 сначала получает блокировку, а затем поток загрузки?Как остановить процесс загрузки до тех пор, пока загрузка не будет завершена?Поскольку все эти операции являются дискретными, как мне узнать, что существует поток загрузки и поток загрузки во время выполнения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...