2014-12-12 3 views
2

Под GEvent-х what's new нового класс Channel под gevent.queue модуля упоминаются:Что такое gevent.queue.Channel?

Queue (0) теперь эквивалентен несвязанной очередь и повышает DeprecationError. Используйте gevent.queue.Channel, если вам нужен канал.

Я проверил страницу документации, но нет документации о том, что такое Channel. Глядя на source, он похож на Queue, но он не является его подклассом. Какова цель или использование Channel? Это какая-то специализированная очередь?

ответ

2

Глядя на the code for the pre-1.0 version of Gevent говорит вам, что Channel есть (хотя я признаю, что это немного запутанным):

Queue(0) является каналом, то есть его put метод всегда блоки до тех пор, он не будет доставлен. (Это не похоже на стандарт Queue, где 0 означает бесконечный размер).

Теперь, как отмечает релиз показывают, такое поведение не изменилось в GEvent 1.0 и Queue(0) больше не работает таким образом: Channel() делает.

Вы заметите, что реализация Channel.put значительно сложнее, чем у Queue.put.

Обратите внимание, что «стандарт Queue» относится к the standard library Queue.

 Смежные вопросы

  • Нет связанных вопросов^_^