Compartilhar via


Programas multithread

Basicamente, um segmento é um caminho de execução através de um programa. Também é a menor unidade de execução a agenda do Win32. Um segmento consiste em uma pilha, o estado dos registros de CPU e uma entrada na lista de execução do Agendador do sistema. Cada thread compartilha recursos de todos os do processo.

Um processo consiste em um ou mais threads e o código, dados e outros recursos de um programa na memória. Os recursos de normal do programa são arquivos abertos, semáforos e memória alocada dinamicamente. Um programa é executado quando o Agendador do sistema fornece controle de execução para um dos seus segmentos. O Agendador determina quais segmentos devem ser executado e quando deve ser executado. Threads de prioridade mais baixa talvez precise aguardar enquanto concluem suas tarefas de segmentos de prioridade mais alta. Em computadores multiprocessador, o Agendador pode mover segmentos individuais para diferentes processadores para equilibrar a carga de CPU.

Cada thread em um processo funciona de forma independente. A menos que você torná-las visíveis uns aos outros, os threads executar individualmente e não estão cientes dos outros threads em um processo. Threads de compartilhamento de recursos comuns, no entanto, devem coordenar seu trabalho usando semáforos ou outro método de comunicação entre processos. Para obter mais informações sobre sincronização de threads, consulte escrevendo um programa multithread do Win32.

Consulte também

Conceitos

Multithreading com c e Win32