Смущены, языки как питон, рубин однопотоковый? в отличие от, скажем, Java? (для веб-приложений) - PullRequest
35 голосов
/ 21 июня 2010

Я читал, как Clojure «крут» из-за его синтаксиса + он работает на JVM, поэтому он многопоточный и т. Д. И т. Д.

Являются ли такие языки, как ruby ​​и python, однопоточными по своей природе?(при работе в качестве веб-приложения).

Каковы основные различия между python / ruby ​​и, скажем, java, работающими на tomcat?

Разве на веб-сервере нет пула потоков для работыво всех случаях?

Ответы [ 12 ]

0 голосов
/ 21 июня 2010

Как распутать узлы во всех этих потоках ...

Clojure не изобрел многопоточность, однако особенно сильно поддерживает его с программной транзакционной памятью, атомами, агентами, операциями параллельного отображения,.

Все остальные имеют накопленную поддержку потоков.Ruby является особым случаем, поскольку в некоторых реализациях он имеет зеленые потоки, которые являются своего рода программными эмулированными потоками и не используют все ядра.1.9 остановит это.

Что касается веб-серверов, то они не всегда работают многопоточно, apache традиционно работает как стая демонов, которые представляют собой пул отдельных однопоточных процессов.Теперь в настоящее время есть больше возможностей для запуска серверов Apache.

Подводя итог, можно сказать, что все современные языки поддерживают многопоточность в той или иной форме.

Более новые языки, такие как scala и clojure, добавляют особую поддержку для улучшения работы с несколькими потоками без явной блокировки, поскольку это традиционно является большой ловушкой многопоточности.

0 голосов
/ 21 июня 2010

Ruby

Ruby Interpreter является однопоточным, то есть некоторые из его методов не являются поточно-ориентированными.

В мире Rails этот однопоточный режим в основном отправляется на сервер.Итак, вы увидите, что nginx работает с пулом серверов mongrel, каждый из которых имеет интерпретатор в памяти, обрабатывает 1 запрос за раз и в своем собственном потоке.

Пассажир, работающий "ruby enterprise " привносит в Rails концепцию сборки мусора и некоторой безопасности потоков, и это приятно.

В этой области еще предстоит проделать работу в Rails, но она продвигается медленно, но в целомидея состоит в том, чтобы иметь несколько служб и серверов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...