2

我们的团队正在实施一种安全的多层对等协议,该协议使用 Boost/C++ 在多个中间“跃点”上建立节点之间的连接。

我们目前陷入了关于如何实现协议设计的辩论,即作为异步单线程或同步多线程架构。

我不想通过列举利弊来偏向这个问题,但我对 StackOverFlow 社区在这些问题上的经验以及他们喜欢哪种方法非常感兴趣?

我意识到这是一个悬而未决的问题,因此理想情况下,答案不是基于轶事证据,而是来自一些经验或分析基础。

4

1 回答 1

5

我会推荐异步有两个原因:

  • 您不需要处理线程交互,这始终是错误的雷区;
  • 您可以使用Boost.Asio库来处理所有低级调度、连接管理等。如果您出于性能原因需要使用多个线程,这也很容易。

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

于 2013-02-07T12:07:47.527 回答