С time.sleep(delay)
вам придется ждать до конца времени ожидания, чтобы ответить на событие, поэтому скорость отклика вашего кода зависит от времени задержки.В то время как при Event().wait()
управлении событиями ваше приложение должно быть намного более отзывчивым, поскольку оно будет немедленно реагировать на внешние раздражители, не дожидаясь окончания задержки.Однако, с другой стороны, это также означает, что управляемое объявление должно будет получать / выпускать GIL гораздо чаще, чем time.sleep(delay)
, который будет высвобождать GIL в течение времени задержки. Как это влияет на производительность?
В зависимости от типа приложения, если у вас много активных потоков, вы можете увидеть некоторые небольшие различия.Эта проблема была особенно очевидна в Python 2x или более ранних версиях, в Python 3x эти функции обеднены на низком уровне, и проблема гораздо менее очевидна.
Если вы заинтересованы в получении дополнительной информации по этому вопросу, здесь вы найдете реализацию функции C для получения блокировки с помощью python3.
Надеюсь, я полностью ответил на ваш вопрос.