В случае, если кто-то никогда не работал с ZeroMQ,
здесь можно с первого взгляда посмотреть на "ZeroMQ Принципы менее чем за Пять секунд 1008 * "
, прежде чем углубляться в детали
Q : " Что такое хороший способ реализовать барьер с ZeroMQ ? "
Лучший способ - это реализовать ни один из них - с точки зрения производительности и задержки .
Код "как есть" не реализует барьер, он заставляет локальный процесс останавливать и оставаться в состоянии ожидания без ограничений для получения удаленным распределенным процессом ( если когда-либо ), обработайте его (, если когда-либо начнется и, мы надеемся, закончите ) и ответьте хотя бы некоторым ответом (здесь, поставка, , если когда-либо произойдет , по крайней мере, сообщение нулевой длины будет в порядке) - до - оно когда-либо переместится на один шаг вперед.
Это довольно дикие и принципиально небезопасные предположения, не так ли?
Я бы никогда не принял код (не только для программного обеспечения промышленного уровня), который сознательно примет себя, чтобы вызвать такой тюремное заключение в такой почти-способной к спасению мамонт-ловушке (вы сами потеряли контроль над выполнением вашего кода и всего устройства, на котором он работает ... приводит к бесполезной жертве ... в зависимости от неуверенного внешнего совпадения факторов, которые полностью находятся вне вашей области контроля - возможно, но немного неудобно - вспомните посадку Аполлона-11 на Луну ... плохой и ужасный поздний момент для ожидания Ага,. .. не так ли? )
Ваш " барьер " - меньший код измеряет только зацикливание на броске партии нажатий на кнопки (не дожидаясь, что на самом деле запускается каждая такая кнопка-пу sh) сделать - будь то автоматическая пушка или кнопка спутниковой камеры дистанционного зондирования pu sh, имеющая спутник на самом деле в нескольких метрах над поверхностью астероида Рюгу, находясь на расстоянии многих десятков световых минут от когда-нибудь слышал вашу первую кнопку - "pu sh" ...
Итак, фактическое распределенное - ( поведенческое ) - протокол решает что может стать возможным решением, а что нет.