我在客户端(生产者)和服务器端的一个线程(消费者)8线程什么是更快的一个并发队列或8个无锁队列?
消费者线程正在旋转检查新数据到达。我有两个选择来实现这一点:
使用一个concurrent queue,所有8个生产张贴到同一个队列,服务器自旋和
try_pop
它使用8无锁single producer single consumer queue。每个生产者发布自己的队列,但消费者应该检查8个查询,而不是一个。
因为我认为检查8个无锁查询必须比检查一个阻塞队列快得多(因为阻塞是昂贵的!)。所以我倾向于使用8 spsc_queue。如果我是对的,你能提出什么建议?
不知道。当你测试每个选项时哪个更快? – admdrew 2014-08-28 19:33:50
您可以通过不旋转来加快速度。 – juanchopanza 2014-08-28 19:46:15
您需要执行多少次测试以确保法拉利比驴子快? – javapowered 2014-08-28 19:47:34