今回は、このところ寄り道をして眺めていっている データレース
と レースコンディション
まわりについて、前回に読み進めていたブログの最後に記されている具体例のところを見ていきます。前回までの理屈的なところを具体例に照らして整理したらイメージを掴みやすくなるかもしれないです。よろしくお願いしますね。
———————————————————————————————————— 熊谷さんのやさしい Swift 勉強会 #224
00:00 開始 00:10 今回の展望 01:37 データが壊れる可能性は意識してみる 02:27 データ競合と競合状態 03:03 それぞれの違いを具体例で見てみる 03:26 不変条件を不変に保つ 05:15 データ競合の起こるコード例 06:36 これがデータ競合の場面? 09:23 std::atmic 10:10 データ競合は起こらなくても競合状態は起こる 15:04 不可分操作を想定した変数 15:46 Objective-C では不可分操作を指定できた 17:08 Swift Atomics というのがあるらしい 18:17 競合状態を防ぐこととは別の話 19:18 ミューテックスによるデータ競合と競合状態の回避例 21:11 その他の排他制御について 22:40 Swift で競合状態を回避してみる 25:13 Concurrency による競合状態の回避 26:47 排他制御によるクリティカルセクションの保護 30:44 クリティカルセクションは、普段どれくらいあるものなのだろう。 31:38 クロージングと次回の展望 ————————————————————————————————————