Добро пожаловать в страну Zen-of-Zero
Основное замечание о евангелизации ZeroMQ заключается в том, что авторы ZeroMQ с тех пор выступали за избегание какого-либо обмена - Ноль-sharing.
Учитывая, что вы уже создали экземпляр инфраструктуры ZeroMQ, лучше использовать межпотоковый PUSH/PULL
через транспорт без IO-потока inproc://
-класс и забудьте о любой хитрой (b-) блокировке.
Одна сторона (Инжектор) просто aPushCHANNEL.send( new_arg );
, а другая (Реализатор) просто либо aPullCHANNEL.recv()
-s при необходимости / при необходимости, или может использовать более умные средства тестирования aPullCHANNEL.poll()
, опять же, лучше всего, если использовать форму нулевого ожидания в опросе if aPullCHANNEL.poll( 0 ){...}else{...}
И ваш распределен-компьютерная архитектура становится полностью разложенной, основанной на ролях, многоагентной, чистой и умной, без каких-либо грязных взаимоблокировок (поэтому лучше всего забыть REQ/REP
с самого начала), без каких-либо трудных для отслеживания / отладки концептуальных ошибок и всех ошибокобнаружено где приложениеи где местная ответственность имеет смысл отобразить первопричину любой такой ошибки для оперативной обработки ошибок.
NB: Да, ZeroMQс тех пор когда-либо разрабатывался без необходимости обеспечения безопасности потоков, так как не было ничего общего для совместного использования (совместное использование нуля).Некоторые недавние усилия в API v4.1 + начали отклоняться от этого Zen-of-Zero, поэтому можно прочитать о некоторых аспектах безопасности потоков, но, как отмечалось выше, и присутствовать почти на каждой странице невероятного ZeroMQ Pieter HINTJENS '.Библейская книга - " Код подключен, том 1 " - лучше всего ничего не делить.
Конструкция ZeroMQ полностью асинхронна и не требует ухода за блокировками, мьютекс-гимнастикой и другими внешне введенными формами.элементы в чистой и умной многоагентной архитектуре асинхронной сигнализации / обмена сообщениями на основе распределенных вычислений .Вы влюбитесь в него, поэтому продолжайте пробовать и читайте книгу.Это будет трудно, но заплатит много за тех, кто продолжит и найдет красоту ZeroMQ Zen-of-Zero.