create_barrierT_create_barrierCreateBarrierCreateBarrier (Operator)
Name
create_barrierT_create_barrierCreateBarrierCreateBarrier
— Erzeugen eines Barriere-Synchronisationsobjektes.
Signatur
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::HBarrier(const wchar_t* AttribName, const wchar_t* AttribValue, Hlong TeamSize)
(Nur Windows)
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 HBarrier::CreateBarrier(const wchar_t* AttribName, const wchar_t* AttribValue, Hlong TeamSize)
(Nur Windows)
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_barrierCreateBarrierCreateBarrierCreateBarrier
legt das Barriereobjekt an, welches in
BarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandle
zurückgegeben wird, und initialisiert es entsprechend
der Attribute in AttribNameAttribNameAttribNameAttribNameattribName
und AttribValueAttribValueAttribValueAttribValueattribValue
.
AttribNameAttribNameAttribNameAttribNameattribName
definiert die Klasse und AttribValueAttribValueAttribValueAttribValueattribValue
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"
-
spezifiziert das Verhalten wenn ein
Thread an einer Barriere warten muss:
- 'sleep'"sleep""sleep""sleep""sleep"
unterbricht den aufrufenden Thread und legt ihn
schlafen (Standard).
- 'spin'"spin""spin""spin""spin"
ist die schnelle Implementierung einer Barriere,
die in einer Schleife auf die Freigabe der Barriere wartet.
Das Argument TeamSizeTeamSizeTeamSizeTeamSizeteamSize
spezifiziert die Anzahl der Threads, die
wait_barrierwait_barrierWaitBarrierWaitBarrierWaitBarrier
zuvor aufrufen müssen, bevor sie vom Warten
zurückkehren können. Der Wert von TeamSizeTeamSizeTeamSizeTeamSizeteamSize
muss größer als
Null sein.
Ausführungsinformationen
- Multithreading-Typ: independent (läuft parallel auch zu exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
AttribNameAttribNameAttribNameAttribNameattribName
(input_control) attribute.name(-array) →
HTupleHTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Barriere-Attribut.
Defaultwert: []
Werteliste: 'type'"type""type""type""type"
AttribValueAttribValueAttribValueAttribValueattribValue
(input_control) attribute.value(-array) →
HTupleHTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Barriere-Attributwert.
Parameteranzahl: AttribValue == AttribName
Defaultwert: []
Werteliste: 'sleep'"sleep""sleep""sleep""sleep", 'spin'"spin""spin""spin""spin"
TeamSizeTeamSizeTeamSizeTeamSizeteamSize
(input_control) number →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Größe des Barriere Teams.
Defaultwert: 1
BarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandle
(output_control) barrier →
HBarrier, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Barriere-Synchronisationsobjekt.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert create_barriercreate_barrierCreateBarrierCreateBarrierCreateBarrier
den Wert 2 (H_MSG_TRUE). Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
Nachfolger
wait_barrierwait_barrierWaitBarrierWaitBarrierWaitBarrier
,
clear_barrierclear_barrierClearBarrierClearBarrierClearBarrier
Modul
Foundation