2016-04-25 20 views
7

Я пытаюсь создать структуру графического интерфейса, которая будет иметь цикл событий. некоторые потоки для обработки пользовательского интерфейса, а некоторые - для обработки событий. Я немного искал и нашел эти три библиотеки, и мне интересно, какой из них лучше использовать? Каковы плюсы и минусы?Eventlet против Greenlet vs gevent?

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

Буду благодарен за обмен опытом, сравнительный анализ и сравнение.

+1

чтение этого сообщения очень тщательно может помочь https://blog.gevent.org/2010/02/27/why-gevent/ –

ответ

7
  • Для этой цели вам определенно не нужна зелень, потому что это библиотека низкого уровня, поверх которой вы можете создавать библиотеки потоков света (например, Eventlet и Gevent).
  • Eventlet, Gevent и другие подобные библиотеки предоставляют отличный набор инструментов для задач, связанных с IO (ожидание чтения/записи по файлу, сети).
  • Вероятно, большая часть вашего графического интерфейса будет ждать других потоков (в этот момент зеленый/свет/поток ОС не имеет значения), чтобы закончить, что является идеальной целью для вышеупомянутых библиотек.
  • Все библиотеки зеленой нити в основном одинаковы. Попробуйте все и решите, какой из них лучше всего подходит для вашего проекта.
  • Но также возможно, что вам нужно извлечь некоторые вещи в отдельный поток ОС из-за требований уровня GUI уровня ОС.
  • Учитывая, что и более эффективная реализация блокировки потоков в Python3, вы можете просто использовать собственный модуль threading, если вашему приложению не нужны сотни и более потоков.