Вопрос

Итак, я играюсь с Питон без стека и у меня в голове возник вопрос, возможно, это "предполагаемое" или "общеизвестное" знание, но я не смог найти, что это на самом деле написано где-либо на сайт без стекирования.

Делает Питон без стека воспользоваться преимуществами многоядерных процессоров?В обычном Python у вас постоянно присутствует GIL, и для (истинного) использования нескольких ядер вам нужно использовать несколько процессов, верно ли это для Без штабелей также?

Это было полезно?

Решение

Stackless python делает не используйте любую многоядерную среду, в которой он работает.
Это распространенное заблуждение о Stackless, поскольку оно позволяет программисту воспользоваться преимуществами программирования на основе потоков.Для многих людей эти две вещи тесно переплетены, но на самом деле это две разные вещи.

Внутренне Stackless использует циклический планировщик для планирования каждого тасклет (микропотоки), но ни один тасклет не может быть запущен одновременно с другим.Это означает, что если один тасклет занят, остальные должны ждать, пока этот тасклет не откажется от управления.По умолчанию планировщик не будет останавливать тасклет и передавать процессорное время другому.Тасклет несет ответственность за то, чтобы запланировать себя обратно в конец очереди расписания, используя Stackless.schedule() или завершив свои вычисления.

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

Причина, по которой Stackless не имеет многоядерной поддержки, заключается в том, что это значительно упрощает потоки.И это как раз то, что представляет собой stackless:

с официального сайта stackless

Stackless Python - это усовершенствованная версия программирования на Python язык.Это позволяет программистам пожинать плоды поточного программирования без снижения производительности и проблем сложности, связанных с обычными потоками. Микропотоки, которые Stackless добавляет к Python - это дешевый и легкий удобство, которое при правильном использовании может дать следующие преимущества:

  • Улучшенная структура программы.
  • Более читаемый код.
  • Повышенная производительность программиста.

Вот такой Ссылка к некоторой дополнительной информации о нескольких ядрах и без стека.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top