我正在用C ++编写一个低延迟程序,该程序从源接收数据,处理数据并通过TCP套接字发送到目标。对于所有这3个模块,我都有一个单独的线程,即接收器线程,处理器线程,发送器线程。所有这些线程都与无锁队列通信。
您是否认为直接发送消息而不在发送者部分使用队列会降低延迟?它会影响性能稳定性吗?
谢谢
答案 0 :(得分:0)
如果三个线程固定在不同的物理内核上,那么拥有单独的发送者线程将比处理器线程执行发送操作时的等待时间短,特别是如果发送过程中发生重试。即使是尽力而为异步发送,您仍然可以节省写入套接字所需的边际时间。