Não. Não é "pesquisa otimizada". Um loop de eventos usa E / S controlada por interrupções em vez de pesquisa.
Os loops While, Until, For, etc. são loops de polling.
"Polling" é o processo de checar repetidamente alguma coisa. Como o código de loop é executado continuamente e porque é um loop pequeno e "apertado", há pouco tempo para o processador alternar tarefas e fazer qualquer outra coisa. Quase todos os "bloqueios", "congelamentos", "bloqueios" ou o que você quiser chamá-lo quando o computador não responde, são a manifestação de código preso em um loop de pesquisa não intencional. A instrumentação mostrará 100% de uso da CPU.
Os loops de evento orientados por interrupções são muito mais eficientes que os loops de pesquisa. O polling é um uso extremamente dispendioso dos ciclos da CPU, portanto, todo esforço é feito para eliminá-lo ou minimizá-lo.
No entanto, para otimizar a qualidade do código, a maioria das linguagens tenta usar o paradigma do ciclo de pesquisa o mais próximo possível dos comandos de entrega de evento, uma vez que eles servem propósitos funcionalmente semelhantes dentro de um programa. Assim, com a sondagem sendo a maneira mais familiar de esperar por um pressionamento de tecla ou algo assim, é fácil para os inexperientes usá-la e acabar com um programa que pode ser executado sozinho, mas nada funciona enquanto está em execução. Ele "assumiu" a máquina.
Como explicado em outras respostas, na manipulação de eventos acionada por interrupções, essencialmente um "sinalizador" é definido dentro da CPU e o processo é "suspenso" (não permitido a ser executado) até que o sinalizador seja alterado por algum outro processo como o driver do teclado mudando quando o usuário pressionou uma tecla). Se o sinalizador for uma condição de hardware real, como uma linha sendo "puxada para cima", ela é chamada de "interrupção" ou "interrupção de hardware". A maioria, no entanto, é implementada apenas como um endereço de memória na CPU ou na memória principal (RAM) e é chamada de "semáforos".
Os semáforos podem ser alterados sob controle de software e, portanto, podem fornecer um mecanismo de sinalização muito rápido e simples entre os processos de software.
Interrupções, no entanto, só podem ser alteradas por hardware. O uso mais frequente de interrupções é o acionado em intervalos regulares pelo chip do relógio interno. Um dos inúmeros tipos de ações de software ativadas por interrupções de clock é a mudança de semáforos.
Eu deixei de fora muito, mas tive que parar em algum lugar. Por favor, pergunte se você precisar de mais detalhes.