揮発性、インターロック、およびロック:同期技術の比較分析
増加または減少のために複数のスレッドで同時にアクセスされる公衆のフィールドがあるクラスを想像してください。 このシナリオでは、counter
、volatile
、およびlock
の有効性を比較しましょう。
interlocked
as
をcounter
>すべてのスレッドが最も最新の値を確認することを保証します。ただし、人種の状態を妨げません。読み取りと書き込みはまだインターリーブし、不正確なカウントにつながる可能性があります。
volatile
A はパフォーマンスのオーバーヘッドを導入し、同じロックを共有する無関係なコードセクションに潜在的に影響を与える可能性があります。
操作は原子修正を提供します。 読み取りワリットシーケンスは、単一の途切れやすい操作として発生し、人種条件を排除し、正確性を確保します。 これは非常に効率的です。
ベストプラクティス:
lock: 概要:
lock
counter
インターロック操作:lock
Interlocked
使用
マルチスレッドコンテキストでの原子可変操作に最適な効率と安全性のバランスを提供します。volatile
interlocked
Emplowe lock
以上が揮発性、インターロック、またはロック: どの同期方法を選択する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。