2013-02-07 64 views
2

我们的团队正在实施一个安全的多层对等协议,该协议使用Boost/C++在多个中间节点之间建立节点之间的连接。用于网络协议设计的异步单线程与同步多线程?

我们目前正在讨论如何实现协议设计,即作为异步单线程或同步多线程体系结构。

我不想通过列举优点和缺点来偏见问题,但我非常感兴趣的是StackOverFlow社区在这些问题上的经验以及他们会赞成的方法?

我意识到这是一个悬而未决的问题,所以理想的答案不是基于轶事证据,而是基于一些经验或分析的基础。

+2

还有第三种选择:每个CPU有一个线程的异步多线程。 – usr

回答

5

我建议异步的原因有两个:

  • 你不需要处理线程交互,它总是错误的雷区;
  • 您可以使用Boost.Asio库来处理所有低级别的调度,连接管理等。如果出于性能原因需要,也可以轻松使用多个线程。

同步可能是更直接如果的连接是独立的,所以没有线程必须共享可变状态。如果你不能做出保证,并确保它将来不会改变,那么我会选择异步。

+0

我们最终去了一个投票,异步模型击败了线程4到3 :) –