Método de ISchedulerProxy::RequestInitialVirtualProcessors
Solicita uma alocação inicial de raízes de processador virtual.Raiz de cada processador virtual representa a capacidade de executar um thread pode executar o trabalho para o Agendador.
virtual IExecutionResource * RequestInitialVirtualProcessors(
bool doSubscribeCurrentThread
) =0;
Parâmetros
- doSubscribeCurrentThread
Se deseja inscrever-se o thread atual e conta durante a alocação de recursos.
Valor de retorno
O IExecutionResource interface para o segmento atual, se o parâmetro doSubscribeCurrentThread tem o valor true.Se o valor for false, o método retorna NULL.
Comentários
Antes de um Agendador executa qualquer trabalho, ele deve usar esse método para solicitar raízes processador virtual do Gerenciador de recursos.O Gerenciador de recursos irá acessar a diretiva do Agendador usando IScheduler::GetPolicy e use os valores para as chaves de diretiva MinConcurrency, MaxConcurrency e TargetOversubscriptionFactor para determinar quantos segmentos de hardware para atribuir o Agendador inicialmente e quantas raízes de processador virtual para criar para cada thread de hardware.Para obter mais informações sobre como as diretivas de Agendador são usadas para determinar a alocação inicial do Agendador, consulte PolicyElementKey.
O Gerenciador de recursos concede recursos para um programador, chamando o método IScheduler::AddVirtualProcessors com uma lista de raízes de processador virtual.O método é invocado como um retorno de chamada para o Agendador antes que esse método retorna.
Se o Agendador solicitada assinatura para o segmento atual, definindo o parâmetro doSubscribeCurrentThread para true, o método retorna um IExecutionResource interface.A inscrição deve ser terminada mais tarde usando o IExecutionResource::Remove método.
Ao determinar quais segmentos de hardware são selecionados, o Gerenciador de recursos tentará otimizar para afinidade de nó de processador.Se a assinatura é solicitada para o segmento atual, é uma indicação de que o thread atual pretende participar do trabalho atribuído a este agendador.No caso, as raízes de processadores virtuais alocados estão localizadas no nó do processador que o thread atual está em execução, se possível.
O ato de assinatura de um thread aumenta o nível de assinatura do thread de hardware subjacente por um.O nível de assinatura é reduzido por um quando a inscrição é finalizada.Para obter mais informações sobre níveis de assinatura, consulte IExecutionResource::CurrentSubscriptionLevel.
Requisitos
Cabeçalho: concrtrm.h
Namespace: concorrência