zmq數據發佈

現有一個利用zmq的數據發佈API,傳入發佈數據時,加鎖將數據放置到鏈表中,然後設置信號量。
另有一個線程一直循環,獲取信號量,加鎖鏈表,然後將數據發送出去。該種設計是否與zmq本身的設計理念不符合?

替換方案1:傳入發佈數據,然後查看鏈表是否爲空;如果鏈表不爲空,則嘗試將鏈表中數據發送,成功則持續發送直到鏈表爲空,然後將傳入的數據發送。如果鏈表爲空時則將數據放入鏈表末端。

if (list.empty())
send if failed then cache
else
{
for list
{
if (send success)
{
pop the sent one
}
else break;
}
list.push_back(the new msg);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章