У меня есть нить, опрашивающая аппаратное обеспечение.
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
, но я уверен, что это что-то совершенно другое (связано с генераторами).
Что здесь делать правильно?