2013-02-07 62 views
2

我們的團隊正在實施一個安全的多層對等協議,該協議使用Boost/C++在多箇中間節點之間建立節點之間的連接。用於網絡協議設計的異步單線程與同步多線程?

我們目前正在討論如何實現協議設計,即作爲異步單線程或同步多線程體系結構。

我不想通過列舉優點和缺點來偏見問題,但我非常感興趣的是StackOverFlow社區在這些問題上的經驗以及他們會贊成的方法?

我意識到這是一個懸而未決的問題,所以理想的答案不是基於軼事證據,而是基於一些經驗或分析的基礎。

+2

還有第三種選擇:每個CPU有一個線程的異步多線程。 – usr

回答

5

我建議異步的原因有兩個:

  • 你不需要處理線程交互,它總是錯誤的雷區;
  • 您可以使用Boost.Asio庫來處理所有低級別的調度,連接管理等。如果出於性能原因需要,也可以輕鬆使用多個線程。

同步可能是更直接如果的連接是獨立的,所以沒有線程必須共享可變狀態。如果你不能做出保證,並確保它將來不會改變,那麼我會選擇異步。

+0

我們最終去了一個投票,異步模型擊敗了線程4到3 :) –