Oi Leandro, tudo bem?
É ótimo ver que você está estudando sobre threads e requisições simultâneas em JavaScript. Parabéns pelo seu interesse!
Quanto à sua dúvida, existem alguns tipos de processos que podem bloquear a Thread Principal além do confirm
e alert
. Por exemplo, operações de I/O intensivas, como fazer uma requisição HTTP síncrona ou executar um loop infinito, podem bloquear a execução da Thread Principal. Isso ocorre porque essas operações são síncronas e impedem que outras tarefas sejam executadas até que sejam concluídas.
Quando usamos um Worker, uma nova estrutura é criada com sua própria call stack e event loop, permitindo que processos pesados sejam executados em paralelo, sem bloquear a Thread Principal. Dessa forma, é possível manter a responsividade da interface do usuário enquanto tarefas demoradas são executadas em segundo plano.
Por exemplo, se você estiver realizando uma requisição HTTP assíncrona utilizando um Worker, a Thread Principal continuará respondendo a eventos do usuário e atualizando a interface, mesmo enquanto a requisição está sendo processada no Worker.
Espero ter esclarecido sua dúvida!
Um abraço.