エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
HaskellのスレッドシステムとSTMについて その3 — ありえるえりあ
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
HaskellのスレッドシステムとSTMについて その3 — ありえるえりあ
STMとロックについて だいぶん間が開いてしまいましたが、その3です。 STMモナドによる操作は、ロックフ... STMとロックについて だいぶん間が開いてしまいましたが、その3です。 STMモナドによる操作は、ロックフリーです。 synchronize だとか lock だとか unlock だとかいうキーワードを書く必要はありません。 しかし、それは Haskell のコードからの視点のようです。 内部的にはロックを使っています。 そこで、ロックを実感するために、このようなコードを実行してみます。 import宣言と、ここにない関数はその1、その2から持ってきてください。 fib :: Int -> Int fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2) threadA :: TVar Int -> IO () threadA v = do n <- atomically $ readTVar v print n atomically $