2009-08-05 8 views
-2

どのようにアトミックな方法でコードをスレッドセーフにすることができますか?アトミックな方法の用途は何ですか?

+1

あなたの質問を少し明確にしたいと思うかもしれません... "アトミックな方法"はあまり具体的ではなく、明確ではありません。 –

+0

これは非常に分かりやすく、難解な質問です。 「原子的な方法」とは何ですか?多分あなたはアトミックメソッドを意味しますか?または同期メソッド? –

答えて

1

アトミック操作は、中断できない操作です。

一般的な同期の問題は、あるスレッドが同期メカニズムによって保護されていないデータ構造を更新するときに発生するため、スレッドが他のスレッドによって足元から変更されているため、古い値または矛盾した値を読み取る可能性があります。

この問題を回避するメカニズムは、データ構造へのアクセスを同期させるため、注文を行い、他のスレッドがアクセスする前に1つのスレッドがデータ構造の使用を完了するようにします。

これらの同期メカニズムは、動作している間にスレッド自体がスケジュールされていないことを確認する必要があります。

これらのメカニズムは、動作を保証するために、これらのアトミックな操作の観点から実装されています。たとえば、semaphoresは、原子インクリメントと 'テストとデクリメント'演算子を使用しています。

これは大部分のテーマで、通常は「分散システム」の対象となります。この用語は、並行性を理解するためのより良いリソースにつながる可能性があります。

関連する問題