AとBの2つのスレッドがあるとします。Thread B
をThread A
から作成して関数にアクセスします。関数スレッドを安全にするかどうか
Thread A
はほとんどの時間の関数を使用し、Thread B
は特定のコマンドでそれをほとんど使用しません。
私が関数をクリティカルセクションの周りに置くことによってスレッドセーフであれば、Thread B
が存在しない場合でも、毎回Thread A
の処理速度が遅くなりませんか?または、私はThread B
の作業をThread A
自体ではなく作成する必要がありますか?
スレッドセーフはリソース用であり、関数用ではありません...共有リソースがない場合は、まったく気にする必要はありません。 –
種類は、関数内のグローバル状態を変更するかどうかによって異なります。そうであれば、Bが「まれに」呼び出す場合でも、クリティカルセクションを使用することで、おそらく多くの時間と悪化を避けることになります。 –
'スレッドA 'が関数にアクセスしているときに'スレッドB'が作成されている場合。 'スレッドA'が関数を出るのを待つのだろうか?この機能は共有リソース、すなわち編集制御を有する。 – user963241