Предположим, у меня есть список событий, я мог бы позвонить
event[i].wait()
# Do something
, чтобы дождаться события с индексом i.
Однако, когда я делаю это, я жду только этого сингла.событие и не знаю, в каком состоянии находятся остальные. Поэтому, если я хочу проверить весь список на предмет установки первого события, я делаю что-то вроде этого.
while True:
for event in events:
if event.is_set():
# Do something
Однако при этом используется много ресурсов ЦП.Время постоянно проверяю каждый предмет.Что-то, чего избегает стандартный метод ожидания для одного объекта Event.Есть ли в python способ проверить все эти события на предмет изменения первого состояния без нагрузки на ЦП?
I может использовать очередь.Но это включает (AFAIK) выбор элемента очереди, чтобы передать его следующему процессу.Скорость важна в моей программе, и я использую общие ctypes для передачи строк из процесса в процесс, что намного быстрее с размерами, с которыми я работаю.Я использую список событий, чтобы сигнализировать, когда общая строка ctype готова к доступу.
Один из способов, который я подумал, - это использовать Очередь, но она должна содержать очень небольшое количество данных, таких как простое int, чтобы сигнализировать о готовности определенного типа ctype.Но я хотел посмотреть, есть ли лучший, более интуитивный способ решить эту проблему.И этот метод, похоже, тоже требует много времени.