ISchedulerProxy::RequestInitialVirtualProcessors-Methode

Fordert eine anfängliche Zuordnung virtueller Prozessorstämme an. Jeder virtuelle Prozessorstamm stellt die Fähigkeit dar, einen Thread auszuführen, der Arbeiten für den Planer ausführen kann.

virtual IExecutionResource * RequestInitialVirtualProcessors(
   bool doSubscribeCurrentThread
) =0;

Parameter

  • doSubscribeCurrentThread
    Ob während der Ressourcenzuordnung der aktuelle Thread und das Konto dafür abonniert werden sollen.

Rückgabewert

Die IExecutionResource-Schnittstelle für den aktuellen Thread, wenn der Parameter doSubscribeCurrentThread den Wert true besitzt. Wenn der Wert false ist, gibt die Methode NULL zurück.

Hinweise

Bevor ein Planer eine Arbeit ausführt, sollten mit dieser Methode die virtuellen Prozessorstämme vom Ressourcen-Manager angefordert werden. Der Ressourcen-Manager greift auf die Richtlinie des Planers mit IScheduler::GetPolicy zu und verwendet die Werte für die Richtlinienschlüssel MinConcurrency, MaxConcurrency und TargetOversubscriptionFactor, um zu bestimmen, wie viele Hardwarethreads anfänglich dem Planer zuzuweisen sind und wie viele Stämme virtueller Prozessoren für jeden Hardwarethread erstellt werden müssen. Weitere Informationen darüber, wie Planerrichtlinien verwendet werden, um die ursprüngliche Zuordnung eines Planers zu bestimmen, finden Sie unter PolicyElementKey.

Der Ressourcen-Manager gewährt einem Planer Ressourcen, indem er die Methode IScheduler::AddVirtualProcessors mit einer Liste von Stämmen virtueller Prozessoren aufruft. Die Methode wird als Rückruf in den Planer aufgerufen, bevor diese Methode beendet wird.

Wenn der Planer ein Abonnement für den aktuellen Thread angefordert hat, indem er den Parameter doSubscribeCurrentThread auf true festgelegt hat, gibt die Methode eine IExecutionResource-Schnittstelle zurück. Das Abonnement muss zu einem späteren Zeitpunkt mit der IExecutionResource::Remove-Methode beendet werden.

Beim Bestimmen, welche Hardwarethreads ausgewählt werden, versucht der Ressourcen-Manager, die Prozessorknotenaffinität zu optimieren. Wenn ein Abonnement für den aktuellen Thread angefordert wird, ist dies ein Anzeichen dafür, das der aktuelle Thread beabsichtigt, an der diesem Planer zugewiesenen Arbeit teilzunehmen. In so einem Fall befinden sich die zugeordneten virtuellen Prozessorstämme, wenn möglich, in dem Prozessorknoten, auf dem der aktuelle Thread ausgeführt wird.

Durch das Abonnieren eines Threads wird die Abonnementebene des zugrunde liegenden Hardwarethreads um eins erhöht. Die Abonnementebene wird um eins reduziert, wenn das Abonnement beendet wird. Weitere Informationen zu Abonnementebenen finden Sie unter IExecutionResource::CurrentSubscriptionLevel.

Anforderungen

Header: concrtrm.h

Namespace: Concurrency

Siehe auch

Referenz

ISchedulerProxy-Struktur