Sobes.tech
Junior

O que é multitarefa?

sobes.tech IA

Resposta da IA

A multitarefa permite executar várias partes de um programa (threads) de forma concorrente, tornando a aplicação mais responsiva e eficiente, especialmente em tarefas com entrada/saída intensiva ou cálculos prolongados.

Conceitos principais:

  • Processo: Programa em execução com seu próprio espaço de endereçamento e recursos.
  • Thread: Unidade de execução dentro de um processo, possui sua própria pilha, registros de CPU, mas compartilha recursos do processo (memória, handles de arquivo).
  • Agendador de threads: O sistema operacional gerencia a execução dos threads, alternando entre eles (troca de contexto).

Vantagens:

  • Aumento da responsividade da interface do usuário.
  • Uso mais eficiente dos recursos de processadores multinúcleo.
  • Simplificação da programação assíncrona (por meio de modelos como TPL).

Desvantagens:

  • Complexidade na sincronização do acesso a recursos compartilhados (condições de corrida, deadlock).
  • Aumento dos custos de criação e gerenciamento de threads.
  • Dificuldade na depuração.

Em C#, a multitarefa é implementada usando classes do namespace System.Threading e System.Threading.Tasks, em particular Thread, ThreadPool, Task, bem como as palavras-chave async e await.

Exemplo de criação de uma thread simples:

using System.Threading;

// Criação de uma nova thread
Thread t = new Thread(DoWork);
// Início da thread
t.Start();

void DoWork()
{
    // Código que será executado em uma thread separada
    Console.WriteLine("Trabalho em uma nova thread.");
}