Tôi đang tiến bộ trong nhiệm vụ Clojure của mình (khoảng 80 vấn đề được giải quyết trên 4clojure.com) và tôi tiếp tục đọc và viết mã và cố gắng "làm cho nó".Clojure lockfree có sử dụng thuật toán lockfree không?
Bây giờ tôi hơi bối rối bởi Clojure được thiết kế cho "đồng thời không khóa". Tôi biết tất cả quá tốt về deadlocks (như trong: "Tôi đã viết mã Java nghèo mà kết thúc trong deadlocks", không phải là trong "Tôi đang ở trong chuyên gia đồng thời"). Tôi cũng đã đọc:
Why is lockless concurrency such a big deal (in Clojure)?
Tôi nhận ra như thế nào tuyệt vời nó là chương trình Clojure không thể bế tắc. Nhưng tôi hơi bối rối: là một thành tích đạt được bằng cách thực hiện theo thuật toán lockfree mui xe hoặc có khả năng "deadlockable" được sử dụng, nhưng sử dụng đúng thực hiện đảm bảo không bao giờ bế tắc (mà bằng cách nào đó sẽ được "ẩn "để lập trình Clojure)?
Đã có một cuộc thảo luận gần đây về tin tức của hacker về thuật toán lockfree:
http://news.ycombinator.com/item?id=4103921
tham khảo những điều sau "thuật toán Lock-free" trang trên 1024cores.net:
http://www.1024cores.net/home/lock-free-algorithms
Tôi không hiểu mối quan hệ giữa bài viết này và cách thức đồng thời hoạt động theo Clojure.
Và nó khiến tôi hoàn toàn bối rối: khi tôi đang phát triển các chương trình đồng thời trong Clojure, điều đó có nghĩa là "khóa và thuật toán không khóa" không phải là vấn đề đối với tôi?
Cũng không phải thẻ * không khóa * cũng không * không khóa nào có wiki. Chúng là từ đồng nghĩa? Hai thẻ này không được hợp nhất hay chúng là những thứ khác nhau? –
Clojure có những khái niệm sâu sắc khác thường đến mức không thể "lấy" chúng bằng cách đơn giản là học cú pháp và giải các câu đố. Nếu mục tiêu của bạn là "thực sự có được Clojure" thì tôi khuyên bạn nên đọc một cuốn sách Clojure tốt. Có khoảng 5 người trong số họ trên Amazon. Sau đó, tôi đảm bảo bạn sẽ có thể trả lời câu hỏi của riêng bạn. – dimagog
@Dmitry Kakurin: Tôi có thể thấy bạn mới ở đây. Nhận xét của bạn cho thấy rằng bạn không nhận được cách SO hoạt động. SO là một nơi để đặt câu hỏi, như thế này đã nhận được 8 upvotes và 3 yêu thích. SO không phải là nơi bạn đến trên con ngựa cao và đái nước của bạn trên những người đang học một ngôn ngữ mới bằng cách giải các câu đố bằng cách nói với họ rằng họ sẽ không * "hiểu nó" * và họ nên đọc sách để trả lời câu hỏi của riêng họ thay vì yêu cầu họ trên SO. Bây giờ nếu ** bạn ** * "thực sự muốn nhận StackOverflow" * Tôi đề nghị bạn đọc các câu hỏi thường gặp SO;) –