Sobes.tech
Junior — Middle

Explique o conceito de thread único na programação e como ele afeta a execução de tarefas

sobes.tech IA

Resposta da IA

A programação de um único fio significa que todas as tarefas são executadas sequencialmente num único fio de execução. No contexto do Flutter, isso significa que a interface de utilizador e a lógica da aplicação funcionam no mesmo fio — o fio principal (main thread).

Isto simplifica a gestão do estado e evita problemas com acessos concorrentes aos dados (condições de corrida), uma vez que não há execução paralela de código. No entanto, se numa aplicação de um único fio for realizada uma operação prolongada (como carregamento de dados ou cálculos complexos), isso bloqueia o fio principal e provoca o congelamento da interface.

Para evitar isso, o Flutter usa operações assíncronas e isoladores (isolates) para executar tarefas pesadas em segundo plano, sem bloquear a UI.

Exemplo de uma operação assíncrona no Flutter:

Future<void> fetchData() async {
  var data = await fetchFromNetwork(); // não bloqueia a UI
  setState(() {
    // atualiza o estado após obter os dados
  });
}