Evg*_*nov 3 c# multithreading zeromq low-latency netmq
我使用私有字段(PushSocket- zmq_push socket for netmq)
private PushSocket _pushSocket;
Run Code Online (Sandbox Code Playgroud)
以及在不同线程中使用此套接字的两种方法
public void Method1()
{
//.....//
_pushSocket.SendFrame(....);
//.....//
}
public void Method2()
{
//.....//
_pushSocket.SendFrame(....);
//.....//
}
Run Code Online (Sandbox Code Playgroud)
我应该使用lock或其他同步原语吗?
在理解ZeroMQ专业级建议1 的基础上:
不得设计具有线程间共享套接字的代码.
按照设计,Ş calable ˚F ormal Ç ommunication P atterns (又名有点误导昵称为插座(S))不是线程安全的(并且从未试过如此).
ZeroMQ
一个人的能力以某种方式调解线程间信令并不是一种信念,这是一个主要的信念,即良好的可扩展并行代码永远不会共享或阻塞.
因此说ZeroMQ传福音.
困惑?NP.
愤怒?NP.
零共享,零锁定 - 尝试将其视为某种形式的避免碰撞,而不是必须从不受控制的并发混乱的烧毁中剔除灰烬.
一个是最好的选择,阅读Pieter HINTJENS的书"Code Connected.第1卷"并花些时间与Pieters对可扩展代码设计原则的看法.
你很快就会爱上新的思维方式ZeroMQ.
| 归档时间: |
|
| 查看次数: |
1079 次 |
| 最近记录: |