我在Clojure任務中取得了進步(在4clojure.com上解決了大約80個問題),我一直在閱讀和編碼,並試圖「明白」。Clojure通過使用無鎖定算法lockfree?
現在我對Clojure被設計用於「無鎖併發」感到困惑。我非常清楚死鎖問題(如:「我編寫的代碼很糟糕,最終導致死鎖」,而不是「我在併發專家」)。我也看到了這一點:
Why is lockless concurrency such a big deal (in Clojure)?
我意識到它是多麼偉大的,Clojure程序不能死鎖。但是我有點困惑:是通過在無鎖無鎖算法下實現這樣一個壯舉,還是使用了可能的「死鎖」算法,但是使用正確的實現保證永遠不會死鎖(這會以某種方式被隱藏「給Clojure程序員)?
還有的是Hacker News上最近的討論有關lockfree算法:
http://news.ycombinator.com/item?id=4103921
參考以下「無鎖算法」頁1024cores.net:
http://www.1024cores.net/home/lock-free-algorithms
我不明白這篇文章和如何併發性之間的關係在Clojure下工作。
它讓我完全困惑:當我在Clojure中開發併發程序時,是否意味着「鎖和無鎖算法」對我來說不是問題?
此外,* lock-free *和* lockless *標籤都沒有wiki。他們是同義詞嗎?這兩個標籤不應該合併或是不同的東西? –
Clojure具有足夠深刻的概念,它通過簡單地學習語法和解決難題來「獲取」它們是不可能的。如果你的目標是「真正獲得Clojure」,那麼我建議你閱讀一本好的Clojure書。亞馬遜上約有5種。那麼我保證你可以回答你自己的問題。 – dimagog
@Dmitry Kakurin:我可以看到你是新來的。你的評論顯示你沒有得到SO的工作原理。 SO是一個提出問題的地方,就像這個獲得8個upvotes和3個收藏夾的問題。所以,你不是在那裏通過解決謎題來告訴他們他們不會去「得到它」,並且他們應該閱讀書籍來回答這些問題他們自己的問題,而不是在SO上問他們。現在如果**你** *「真的想得到StackOverflow」*我建議你閱讀SO FAQ; ) –