トップ «前の日記(2010-03-27) 最新 次の日記(2010-04-01)» 編集

Route 477



2010-03-29

[prog] STM(ソフトウェアトランザクションメモリ)

関数プログラミング入門 の後半が面白かったのでメモ。

  • CPUのクロック数が頭打ちに → これからは並行処理しないと速くならない時代
  • でもロックはいろいろ大変…
    • ロック過剰→性能低下
    • ロック不足→再現しずらいバグ
    • デッドロック
    • 組み合わせ問題 (スライドp.86-)
  • そこでSTM (ソフトウェアによるトランザクションメモリ)ですよ
    • データベースのトランザクションに似たもの
    • 実行してみて、競合してたらやり直し
    • 性能的には劣るが扱いやすい
  • トランザクションの中ではIOとかやっちゃだめ(複数回実行されることがあるから)
    • 気をつける (Clojure等)
    • 型システムで、トランザクション中にIOがないことを保証 (Haskell) ←かっこいい