Processos e threads

Um aplicativo consiste em um ou mais processos. Um processo, nos termos mais simples, é um programa em execução. Um ou mais threads são executados no contexto do processo. Um thread é a unidade básica para a qual o sistema operacional aloca o tempo do processador. Um thread pode executar qualquer parte do código do processo, incluindo partes que estão sendo executadas por outro thread.

Um objeto de trabalho permite que grupos de processos sejam gerenciados como uma unidade. Objetos de trabalho são objetos navegáveis, protegíveis e fragmentáveis que controlam atributos dos processos associados a eles. As operações executadas no objeto de trabalho afetam todos os processos associados ao objeto de trabalho.

Um pool de threads é uma coleção de threads de trabalho que executam com eficiência retornos de chamada assíncronos em nome do aplicativo. O pool de threads é usado principalmente para reduzir o número de threads de aplicativo e fornecer gerenciamento dos threads de trabalho.

Uma fibra é uma unidade de execução que deve ser agendada manualmente pelo aplicativo. As fibras são executadas no contexto dos threads que os agendam.

O agendamento do modo de usuário (UMS) é um mecanismo leve que os aplicativos podem usar para agendar seus próprios threads. Os threads ums diferem das fibras porque cada thread umS tem seu próprio contexto de thread em vez de compartilhar o contexto de thread de um único thread.