Я пытаюсь написать простой алгоритм блокировки / разблокировки, который ведет себя как мьютекс в распределенных системах с C ++.
Он будет реализован в виде библиотеки, и пользователи смогут использовать его, используя файл интерфейса.
Предположим, что есть 3 процесса {A, B, C}.
Каждый процессор знает адреса и порты других процессов и т. Д.
Если A
хочет заблокировать какой-либо объект, он получает разрешение от других процессов, которые в данном случае B
и C
.
Я считаю, что отправка и ожидание ответов от B, и C не будет проблемой, потому что пользователь обязательно вызовет функцию.
Но как B
и C
должны получить сообщение?
Гарантируется, что все процессы будут живы.
Должен ли быть отдельный поток для каждого процессора, выполняющего прослушивание (опрос) сокетов?
Означает ли это, что я создам поток в конструкторе и использую его во время выполнения процесса, и уничтожить его в деструкторе будет просто прекрасно?