2

私たちのチームは、Boost / C ++を使用して、複数の中間「ホップ」を介してノード間の接続を確立する、安全な多層ピアツーピアプロトコルを実装しています。

現在、プロトコル設計を実装する方法、つまり非同期シングルスレッドまたは同期マルチスレッドアーキテクチャとしての実装方法についての議論に縛られています。

私は賛否両論を列挙することによって質問にバイアスをかけたくありませんが、私はそのような問題でのStackOverFlowコミュニティの経験と彼らが好むアプローチに非常に興味がありますか?

これは未解決の質問であるため、理想的には、回答は事例証拠に基づくのではなく、経験的または分析的な根拠に基づいて導き出されることを理解しています。

4

1 に答える 1

5

2つの理由から非同期をお勧めします。

  • 常にバグの地雷原であるスレッドの相互作用に対処する必要はありません。
  • Boost.Asioライブラリを使用して、すべての低レベルのスケジューリング、接続管理などを処理できます。これにより、パフォーマンス上の理由で必要な場合に、複数のスレッドを簡単に使用することもできます。

接続が独立している場合、同期はより簡単になる可能性があるため、スレッドが可変状態を共有する必要はありません。その保証ができず、将来変更されないことを確認する場合は、非同期を選択します。

于 2013-02-07T12:07:47.527 に答える