Как сделать Ruby или веб-сайты Python для использования нескольких ядер?

По умолчанию bash поддерживает совместимое с csh историческое расширение.

В bash

echo #!

будет печатать только новую строку, так как # начинает комментарий.

В

echo "#!"

# является частью строки, начинающейся с ". Такие строки все еще проверяются bash для специальных символов. ! является специальным символом, если за ним следует любой другой текст.

-bash: !": event not found

В этом случае bash ожидает, что токен !" ссылается на предыдущую команду в истории оболочки, начиная с ", и не находит его. Все это само по себе ! не вызывает такого поведения:

$ echo \# !
# !

$ echo fee ! fie
fee ! fie

Наконец,

$ echo !echo

создает две строки, первая строка выводится оболочкой, чтобы показать, как шаблон выше расширяется до:

echo echo '# !'

, тогда как вторая строка является результатом выполнения расширенной команды: echo #!


См. также: Страница пользователя Bash в История Расширение

7
задан Miriam Ruiz 1 September 2008 в 08:41
поделиться

5 ответов

Я не полностью уверен, который проблема, которую Вы хотите так, решает, но если Вы развернете свое python/django приложение через апачское предварительное ветвление, то MPM, использующий mod_python апач, запустит несколько рабочих процессов для того, чтобы обработать различные запросы.

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

4
ответ дан 7 December 2019 в 01:29
поделиться

'Стандартный' способ сделать это с направляющими должно выполнить "пакет" экземпляров Полукровки (т.е.: 4 копии приложения направляющих), и затем используют апача или nginx или некоторую другую часть программного обеспечения для нахождения перед ними и действием как подсистема балансировки нагрузки.

Это, вероятно, как это сделано с другими рубиновыми платформами, такими как merb и т.д., но я не использовал тех лично.

ОС будет заботиться о выполнении каждой полукровки на своем собственном ЦП.

, Если Вы устанавливаете mod_rails иначе phusion пассажир , он запустит и остановит несколько копий процесса направляющих для Вас также, таким образом, он закончит тем, что распределил нагрузку через несколько центральных процессоров/ядер похожим способом.

4
ответ дан 7 December 2019 в 01:29
поделиться

Используйте интерфейс, который выполняет каждый ответ в отдельном интерпретаторе, такой как mod_wsgi для Python. Это позволяет многопоточности использоваться, не встречаясь с GIL.

РЕДАКТИРОВАНИЕ: По-видимому, mod_wsgi больше поддержки несколько интерпретаторов для каждого процесса, потому что идиоты не могли выяснить, как правильно реализовать дополнительные модули. Это все еще поддерживает рабочие запросы в отдельном FastCGI-стиле процессов, тем не менее, таким образом, это - по-видимому, текущее принятое решение.

1
ответ дан 7 December 2019 в 01:29
поделиться

В Python и Ruby только возможно использовать несколько ядер, должен породить новые (тяжелые) процессы. Дубликаты Java наследовали возможности платформы Java. Вы могли подразумевать потоки Java использования. Это - например, причина, почему иногда (часто) Сервер JAVA-приложения как Glassfish используется для приложений Ruby on Rails.

1
ответ дан 7 December 2019 в 01:29
поделиться

Для Python проект PyProcessing позволяет, Вы к программе с процессами во многом как Вы использовали бы потоки. Это включено в стандартную библиотеку недавно выпущенных 2,6 версий как multiprocessing . Модуль имеет много функций установления и управления доступом к структурам совместно используемых данных (очереди, каналы, и т.д.) и поддержка общих идиом (т.е. менеджеры и объединения рабочего).

0
ответ дан 7 December 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: