Насколько я знаю, на Python, если вы использовали обычную потоковую передачу в многоядерной среде, GIL обычно попадает в путь и влияет на производительность в (потому что потоки будут пытаться постоянно приобретать и выпускать GIL и делать много контекстных переключений между потоками/процессорами).Как создать приложение python для параллельной работы с несколькими ядрами
Вот почему многие люди начинают использовать зеленые потоки, например. eventlet. Библиотека eventlet позволяет вам иметь несколько зеленых потоков, работающих совместно, и отлично работает в одном процессоре (меньше проблем синхронизации, быстрого нереста/эффективности и т. Д. И т. Д.).
Мой вопрос заключается в том, что если бы у меня была многоядерная ОС и я должен был разработать мое приложение для python, то какая лучшая практика или шаблон дизайна я должен соблюдать, чтобы воспользоваться преимуществами как совместной резьбы (зеленых потоков), так и многоядерных процессоров ,
Мертвые просто: IO связанные == нити, ЦП процесс ==. Кроме того, потоки Python 3.2+ работают намного лучше, чем более ранние версии, например, 2.7 – JBernardo
@JBernardo вы можете дать ответ и объяснить, почему в деталях? также почему вы говорите нить, вы имели в виду потоки или зеленые нити? Некоторые конкретные примеры заслуживают высокой оценки. – Shengjie
Темы, как в библиотеке 'threading'. Я боюсь, что этот вопрос слишком широк для формата SO ... Вы должны добавить некоторые реальные примеры того, что вы хотите сделать. – JBernardo