Я продвигаюсь в квесте Clojure (около 80 проблем, разрешенных на 4clojure.com), и я продолжаю читать и кодировать и пытаюсь "получить".
Теперь я немного смущен тем, что Clojure предназначен для "блокировки concurrency". Я слишком хорошо знаю о тупиках (как в: "Я написал плохой Java-код, который оказался в тупиках", а не как "Я в эксперте по concurrency" ). Я также прочитал это:
Почему блокировка concurrency такая большая сделка (в Clojure)?
Я понимаю, насколько здорово, что программы Clojure не могут затормозить.
Но я немного смущен: это такой подвиг, который достигается благодаря реализации алгоритмов без блокировки капота или существуют потенциально "тупиковые" алгоритмы, но с использованием правильной реализации, гарантированной никогда не запираться (что-то "скрыто" ) для Clojure программистов)?
Недавно была опубликована новость о хакерских новостях о неблокируемых алгоритмах:
http://news.ycombinator.com/item?id=4103921
ссылаясь на следующую страницу "Без блокировки" на странице 1024cores.net:
http://www.1024cores.net/home/lock-free-algorithms
Я не понимаю связи между этой статьей и как concurrency работает под Clojure.
И это меня полностью смутило: когда я разрабатываю параллельные программы в Clojure, означает ли это, что "блокировки и блокировки алгоритмов" для меня не являются проблемой?