Quiz 11 - Threads e Coroutines 🧵
1. O que é a "Main Thread" (ou UI Thread) no Android?
Uma thread que fica baixando arquivos em background.
A thread principal responsável por desenhar a interface e processar toques do usuário.
A conexão de internet do celular.
O carregador de bateria.
2. O que causa o erro "ANR" (Application Not Responding)?
Falta de espaço em disco.
Bloquear a Main Thread por muito tempo (ex: fazendo uma operação pesada ou download).
O usuário esqueceu de carregar o celular.
Usar muitas cores no layout.
3. O que são Kotlin Coroutines?
Um novo tipo de tela.
Uma linguagem de banco de dados.
Mecanismos de concorrência leve que permitem escrever código assíncrono de forma sequencial.
Pequenos robôs que consertam o código.
4. Qual a função da palavra-chave `suspend` em Kotlin?
Deletar a função da memória.
Indicar que a função pode ser pausada e continuada depois sem bloquear a thread atual.
Tornar a função invisível para outras classes.
Faz com que a função rode apenas em feriados.
5. Para que serve o `Dispatcher.IO` no Kotlin?
Para atualizar a barra de progresso na tela.
Para fazer cálculos matemáticos intensos (CPU).
Para realizar operações de entrada/saída (Rede, Banco de Dados, Arquivos).
Para tocar músicas.
6. Qual Dispatcher deve ser usado OBRIGATORIAMENTE para atualizar um componente visual (ex: `txtNome.text = "João"`)?
Dispatchers.IO
Dispatchers.Default
Dispatchers.Main
Dispatchers.Unconfined
7. O que é o `viewModelScope`?
Um telescópio para ver o código.
Um escopo de coroutine ligado ao ciclo de vida do ViewModel; limpa tudo automaticamente quando o ViewModel morre.
O banco de dados do Google.
Uma variável global para todo o app.
8. O que caracteriza uma comunicação via "Socket" (TCP) em relação ao REST?
É mais lenta.
É uma conexão bidirecional persistente (Full-Duplex), ideal para chats ou jogos em tempo real.
Só funciona com Bluetooth.
É um formato de imagem.
9. No iOS moderno, qual o conceito equivalente às Kotlin Coroutines para lidar com assincronismo?
GCD (Grand Central Dispatch)
OperationQueues
Async / Await
Closures
10. O que faz a função `withContext()` dentro de uma Coroutine?
Fecha o aplicativo.
Permite trocar temporariamente de Thread (ex: sair da Main e ir para IO) e voltar após terminar.
Salva o estado do celular.
Muda o idioma do app.