Capítulo 16. Multithreading
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
O multithreading permite que uma aplicação execute várias partes de código em simultâneo. Há duas razões comuns para fazeres isto. Uma é explorar as capacidades de processamento paralelo do computador - as CPUs com múltiplos núcleos são agora mais ou menos omnipresentes, e para realizar todo o seu potencial de desempenho, terás de fornecer à CPU vários fluxos de trabalho para dar a todos os núcleos algo útil para fazer. A outra razão comum para escrever código multithread é evitar que o progresso seja interrompido quando fazes algo lento, como ler do disco.
Multithreading não é a única maneira de resolver esse segundo problema - técnicas assíncronas podem ser preferíveis. O C# tem recursos para suportar trabalho assíncrono. Execução assíncrona não significa necessariamente multithreading, mas os dois estão frequentemente relacionados na prática, e eu vou descrever alguns dos modelos de programação assíncrona neste capítulo. No entanto, este capítulo concentra-se nos fundamentos de threading. Descreverei o suporte a nível de linguagem para código assíncrono no Capítulo 17.
Threads
Todos os sistemas operativos em que o .NET pode ser executado permitem que cada processo contenha várias threads (embora se construíres para o Web Assembly e executares código no browser, esse ambiente específico não suporta atualmente a criação de novas ...