У меня есть поток, который опросит часть оборудования.
while not hardware_is_ready():
pass
process_data_from_hardware()
Но есть и другие потоки (и процессы!), которые могут иметь что-то делать. Если это так, я не хочу сжечь процессор, проверяя оборудование на каждую другую инструкцию. Прошло некоторое время с тех пор, как я занимался потоковой обработкой, и когда я это делал, это был не Python, но я считаю, что большинство потоковых библиотек имеют функцию yield
или что-то, что позволяет потоку сообщать планировщику "Дайте другим потокам шанс".
while not hardware_is_ready():
threading.yield() # This function doesn't exist.
process_data_from_hardware()
Но я не могу найти ссылку на что-то подобное в документации по потокам. У Python есть оператор yield
, но я уверен, что что-то еще (что делать с генераторами).
Какая правильная вещь здесь?