O que é um tópico?
Um thread é um caminho de execução dentro de um processo. Um processo pode conter vários threads.
Por que multithreading?
Um thread também é conhecido como processo leve. A ideia é atingir o paralelismo dividindo um processo em vários threads. Por exemplo, em um navegador, várias guias podem ser threads diferentes. O MS Word usa vários threads: um thread para formatar o texto, outro thread para processar entradas, etc. Mais vantagens do multithreading são discutidas abaixo
Processo vs Thread?
A principal diferença é que os threads dentro do mesmo processo são executados em um espaço de memória compartilhado, enquanto os processos são executados em espaços de memória separados.
Threads não são independentes uns dos outros como os processos são e, como resultado, os threads compartilham com outros threads sua seção de código, seção de dados e recursos do sistema operacional (como arquivos abertos e sinais). Mas, como o processo, uma thread tem seu próprio contador de programa (PC), conjunto de registros e espaço de pilha.
Vantagens do Thread em relação ao Processo
1. Capacidade de resposta: Se o processo for dividido em vários threads, se um thread concluir sua execução, sua saída poderá ser retornada imediatamente.

2. Troca de contexto mais rápida: o tempo de troca de contexto entre threads é menor em comparação com a troca de contexto do processo. A comutação de contexto de processo requer mais sobrecarga da CPU.

3. Utilização efetiva do sistema multiprocessador: Se tivermos vários threads em um único processo, podemos agendar vários threads em vários processadores. Isso tornará a execução do processo mais rápida.

4. Compartilhamento de recursos: recursos como código, dados e arquivos podem ser compartilhados entre todos os threads de um processo.
Nota: pilha e registros não podem ser compartilhados entre as threads. Cada thread tem sua própria pilha e registros.

5. Comunicação: a comunicação entre vários threads é mais fácil, pois os threads compartilham um espaço de endereço comum. enquanto em processo, temos que seguir alguma técnica de comunicação específica para a comunicação entre dois processos.

6. Taxa de transferência aprimorada do sistema: Se um processo for dividido em vários segmentos, e cada função de segmento for considerada como um trabalho, o número de tarefas concluídas por unidade de tempo aumentará, aumentando assim a taxa de transferência do sistema.
Tipos de threads
Existem dois tipos de threads.
Thread de nível de usuário Thread de nível de
kernel
Consulte User Thread vs Kernel Thread para obter mais detalhes.

Abaixo estão as perguntas sobre o portão dos anos anteriores:
https://www.geeksforgeeks.org/gate-gate-cs-2011-question-16/
https://www.geeksforgeeks.org/gate-gate-cs-2007- question-17 /
https://www.geeksforgeeks.org/gate-gate-cs-2014-set-1-question-30/

Referência:
Multithreading em C

Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima.