Сравнение Erlang и Clojure в несколько строк.
Erlang: The Movie <=> Clojure: The Podcast :-)
Erlang распределенный, Clojure нет.
Агент в ерланг это легковесный поток, над потоками стоит шедулер.
Агент в кложа это объект и вы асинхронно можете посылать сообщение (функцию) этому объекту. Каждый объект имеет очередь и по очереди обрабатывает сообщения. Не надо путать агентов с потоками. Агент это просто объект и вы можете иметь миллионы в памяти безо всякой нагрузки. Обработка сообщений агентов распределяется по пулу потоков. Шедулера нет.
Короче говоря если вы посылаете агенту сообщение с бесконечным циклом, то тред в котором он будет выполнятся заблокируется. В ерланг оно понятно таких проблем нет.
Комментариев нет:
Отправить комментарий