KlassenKlassenKlassenKlassen | | | | Operatoren

create_barriercreate_barrierCreateBarriercreate_barrierCreateBarrierCreateBarrier (Operator)

Name

create_barriercreate_barrierCreateBarriercreate_barrierCreateBarrierCreateBarrier — Erzeugen eines Barriere-Synchronisationsobjektes.

Signatur

create_barrier( : : AttribName, AttribValue, TeamSize : BarrierHandle)

Herror create_barrier(const char* AttribName, const char* AttribValue, const Hlong TeamSize, Hlong* BarrierHandle)

Herror T_create_barrier(const Htuple AttribName, const Htuple AttribValue, const Htuple TeamSize, Htuple* BarrierHandle)

Herror create_barrier(const HTuple& AttribName, const HTuple& AttribValue, const HTuple& TeamSize, Hlong* BarrierHandle)

void HBarrier::CreateBarrier(const HTuple& AttribName, const HTuple& AttribValue, const HTuple& TeamSize)

void CreateBarrier(const HTuple& AttribName, const HTuple& AttribValue, const HTuple& TeamSize, HTuple* BarrierHandle)

void HBarrier::HBarrier(const HTuple& AttribName, const HTuple& AttribValue, Hlong TeamSize)

void HBarrier::HBarrier(const HString& AttribName, const HString& AttribValue, Hlong TeamSize)

void HBarrier::HBarrier(const char* AttribName, const char* AttribValue, Hlong TeamSize)

void HBarrier::CreateBarrier(const HTuple& AttribName, const HTuple& AttribValue, Hlong TeamSize)

void HBarrier::CreateBarrier(const HString& AttribName, const HString& AttribValue, Hlong TeamSize)

void HBarrier::CreateBarrier(const char* AttribName, const char* AttribValue, Hlong TeamSize)

void HOperatorSetX.CreateBarrier(
[in] VARIANT AttribName, [in] VARIANT AttribValue, [in] VARIANT TeamSize, [out] VARIANT* BarrierHandle)

void HBarrierX.CreateBarrier(
[in] VARIANT AttribName, [in] VARIANT AttribValue, [in] Hlong TeamSize)

static void HOperatorSet.CreateBarrier(HTuple attribName, HTuple attribValue, HTuple teamSize, out HTuple barrierHandle)

public HBarrier(HTuple attribName, HTuple attribValue, int teamSize)

public HBarrier(string attribName, string attribValue, int teamSize)

void HBarrier.CreateBarrier(HTuple attribName, HTuple attribValue, int teamSize)

void HBarrier.CreateBarrier(string attribName, string attribValue, int teamSize)

Beschreibung

Eine Barriere ist ein Synchronisationsobjekt, welches einen Thread solange blockiert, bis eine zuvor definierte Anzahl von Threads diese Barriere erreicht haben.

create_barriercreate_barrierCreateBarriercreate_barrierCreateBarrierCreateBarrier legt das Barriereobjekt an, welches in BarrierHandleBarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandle zurückgegeben wird, und initialisiert es entsprechend der Attribute in AttribNameAttribNameAttribNameAttribNameAttribNameattribName und AttribValueAttribValueAttribValueAttribValueAttribValueattribValue. AttribNameAttribNameAttribNameAttribNameAttribNameattribName definiert die Klasse und AttribValueAttribValueAttribValueAttribValueAttribValueattribValue den Typ der Barriere. Im Folgenden werden die möglichen Attributwerte für die gelisteten Attributnamen beschrieben:

''""""""""""

der leere String setzt die Standardattribute.

'type'"type""type""type""type""type"

spezifiziert das Verhalten wenn ein Thread an einer Barriere warten muss:

'sleep'"sleep""sleep""sleep""sleep""sleep"

unterbricht den aufrufenden Thread und legt ihn schlafen (Standard).

'spin'"spin""spin""spin""spin""spin"

ist die schnelle Implementierung einer Barriere, die in einer Schleife auf die Freigabe der Barriere wartet.

Das Argument TeamSizeTeamSizeTeamSizeTeamSizeTeamSizeteamSize spezifiziert die Anzahl der Threads, die wait_barrierwait_barrierWaitBarrierwait_barrierWaitBarrierWaitBarrier zuvor aufrufen müssen, bevor sie vom Warten zurückkehren können. Der Wert von TeamSizeTeamSizeTeamSizeTeamSizeTeamSizeteamSize muss größer als Null sein.

Parallelisierung

Parameter

AttribNameAttribNameAttribNameAttribNameAttribNameattribName (input_control)  number(-array) HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Barriere-Attribut.

Defaultwert: []

Werteliste: 'type'"type""type""type""type""type"

AttribValueAttribValueAttribValueAttribValueAttribValueattribValue (input_control)  number(-array) HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Barriere-Attributwert.

Parameteranzahl: AttribValue == AttribName

Defaultwert: []

Werteliste: 'sleep'"sleep""sleep""sleep""sleep""sleep", 'spin'"spin""spin""spin""spin""spin"

TeamSizeTeamSizeTeamSizeTeamSizeTeamSizeteamSize (input_control)  number HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Größe des Barriere Teams.

Defaultwert: 1

BarrierHandleBarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandle (output_control)  barrier HBarrier, HTupleHTupleHBarrier, HTupleHBarrierX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Barriere-Synchronisationsobjekt.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert create_barriercreate_barrierCreateBarriercreate_barrierCreateBarrierCreateBarrier den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

wait_barrierwait_barrierWaitBarrierwait_barrierWaitBarrierWaitBarrier, clear_barrierclear_barrierClearBarrierclear_barrierClearBarrierClearBarrier

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren