0

スレッドセーフではないように意図的に設計されているように見える多くのライブラリとAPI(Qtなど)があります。そのようなデザインの動機は何ですか?

4

2 に答える 2

6

簡単です。些細なライブラリスレッドを失うことなく安全にするのは本当に難しい

  • シンプルさ
  • スケーラビリティ
  • 速度
  • 安定
  • 正気

多くの開発者はこれらのことをかなり高く評価しているので、マルチスレッドを気にしないことに決めることがよくあります。

GUIライブラリの場合、GUIコードの単一のスレッドに固執しないと、非常に複雑な状況に陥るため、健全性が大きな懸念事項のように思われます。

于 2012-07-31T07:15:28.247 に答える
1

スレッドセーフを確保するために使用される手法の多くは、パフォーマンスの低下を招きます。ライブラリのユースケースでスレッドセーフが必要ない場合は、それを省略することが合理的な設計上の選択になります。

ライブラリを非スレッドセーフにすることは、マルチスレッドアプリケーションでの使用を妨げるものではなく、ライブラリのユーザーがスレッドセーフを自分で実装する必要があることを意味します(通常、ライブラリへの呼び出しをスレッドセーフラッパーでラップします)。スレッドセーフが組み込まれていないライブラリを作成することにより、作成者は、スレッドセーフを必要としないユーザーに関連するパフォーマンスの低下を強いることを許可しません。

于 2012-07-31T07:19:48.597 に答える