Бесстековый питон и многоядерные ядра?

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

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

он же Кооперативная многозадачность ..

user584466 21.01.2011 16:58
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
25
1
8 444
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

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

Stackless Python is an enhanced version of the Python programming language. It allows programmers to reap the benefits of thread-based programming without the performance and complexity problems associated with conventional threads. The microthreads that Stackless adds to Python are a cheap and lightweight convenience which can if used properly, give the following benefits:

  • Improved program structure.
  • More readable code.
  • Increased programmer productivity.

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

Им следует разместить ваше первое предложение на своем веб-сайте.

John Wang 10.07.2019 12:37

Другие вопросы по теме

Много потоков или как можно меньше потоков?
Многопоточная передача файлов на FTP-сервер
Как вы измеряете время выполнения блока кода (потока) с несколькими параллельными потоками в .NET
Как мне создать новую форму окна и связать ее с уже существующим потоком?
Правильный способ получить пользовательский интерфейс Winforms для блокировки с помощью диалогового окна до тех пор, пока не появится какое-либо событие, не связанное с пользователем?
Как заблокировать поток пользовательского интерфейса из другого потока или заставить форму запускаться в потоке пользовательского интерфейса
Асинхронный, синхронный и многопоточный в приложении для iPhone
SSL-сокет в Windows. Библиотека? Синхронный / асинхронный? Потоки?
Управление контекстом объекта Entity Framework ADO.NET в ASP.NET MVC
Полезна ли многопользовательская и многопроцессорная среда с потоковой передачей?