私は Clojure クエスト (4clojure.com で約 80 の問題が解決されています) を進めており、読み続け、コーディングし、「理解」しようとしています。
Clojure が「ロックレス同時実行」用に設計されていることに少し混乱しています。私はデッドロックについてよく知っています ( 「I'm in Expert in concurrency」ではなく、「デッドロックに終わった貧弱な Java コードを書いた」のように)。私もこれを読みました:
なぜ (Clojure で) ロックレスな同時実行がそれほど重要なのでしょうか?
Clojure プログラムがデッドロックにならないということの素晴らしさを実感しています。
しかし、私は少し混乱しています: そのような偉業は内部でロックフリーアルゴリズムを実装することによって達成されるのでしょうか、それとも「デッドロック可能な」アルゴリズムが使用される可能性がありますが、デッドロックしないことが保証された正しい実装を使用することでしょうか (Clojure プログラマーにはどういうわけか「隠されている」でしょう)。 )?
ロックフリー アルゴリズムに関するハッカー ニュースに関する最近の議論があります。
http://news.ycombinator.com/item?id=4103921
1024cores.netの次の「ロックフリー アルゴリズム」ページを参照します。
http://www.1024cores.net/home/lock-free-algorithms
この記事と Clojure での同時実行の仕組みとの関係がわかりません。
Clojure で並行プログラムを開発しているとき、「ロックとロックフリーのアルゴリズム」は私にとって問題ではないということですか?