2013-07-14 11 views
5

içinde PUSH: basit ÇEKME-PUSH noktadan noktaya desen ZMQ tüketici bir ile mesajları iten bir üretici. Üreticinin, zmq yoluyla send()'un birkaç dahili iş parçacığı vardır. Bununla birlikte, 0MQ's docs , numaralı ileti dizileri arasındaki soketleri paylaşmamayı önerir.zmq: birden çok iş parçacığı I iki işlem basit bir itme-çekme modeli

Göndermek için tek bir iş parçacığı kullanmalı mıyım?
Gönderme sırasını iş parçacıkları arasında tutmaya yönelik kesin bir gereksinim olmadığı varsayılırsa, soketin tek yönlü simpleks olması, birden çok iş parçacığının kilitleri kullanmadan kullanmasına izin vermiyor mu?

cevap

4

Yapılması en kolay şey, üreticinin tüm dişleri için ayrı bir PUSH soketi ve bu soketlerin tümünü tek bir PULL soketine bağlamaktır.

Kılavuzda, ZeroMQ soketlerinin tek bir vida dişinde kullanılması gerektiği açıkça belirtilmiştir. Bu koşulu ihlal etmenin iyi bir fikir olmadığını söyleyebilirim, işe yaramış gibi görünse bile: kütüphanenin bir sonraki sürümünde veya belirli bir platformda veya bazı belirli bir yük senaryosunda işler bozulabilir. Yani, sadece çok riskli.

İlgili konular