Подтвердить что ты не робот

Неуправляемый питон и мультикоры?

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

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

4b9b3361

Ответ 1

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

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

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

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

с официального сайта без стеков

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

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

Ниже приведена ссылка для получения дополнительной информации о нескольких ядрах и без стека.