create_barrierT_create_barrierCreateBarrierCreateBarriercreate_barrier (Operator)
Name
create_barrierT_create_barrierCreateBarrierCreateBarriercreate_barrier — 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_barrierCreateBarrierCreateBarrierCreateBarriercreate_barrier legt das Barriere-Objekt an, welches in
BarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandlebarrier_handle zurückgegeben wird, und initialisiert es entsprechend
der Attribute in AttribNameAttribNameAttribNameAttribNameattribNameattrib_name und AttribValueAttribValueAttribValueAttribValueattribValueattrib_value.
AttribNameAttribNameAttribNameAttribNameattribNameattrib_name definiert die Klasse und AttribValueAttribValueAttribValueAttribValueattribValueattrib_value
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 TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size spezifiziert die Anzahl der Threads, die
wait_barrierwait_barrierWaitBarrierWaitBarrierWaitBarrierwait_barrier zuvor aufrufen müssen, bevor sie vom Warten
zurückkehren können. Der Wert von TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size 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
AttribNameAttribNameAttribNameAttribNameattribNameattrib_name (input_control) attribute.name(-array) → HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Barriere-Attribut.
Defaultwert: []
Werteliste: 'type'"type""type""type""type""type"
AttribValueAttribValueAttribValueAttribValueattribValueattrib_value (input_control) attribute.value(-array) → HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (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""sleep", 'spin'"spin""spin""spin""spin""spin"
TeamSizeTeamSizeTeamSizeTeamSizeteamSizeteam_size (input_control) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Größe des Barriere Teams.
Defaultwert: 1
BarrierHandleBarrierHandleBarrierHandleBarrierHandlebarrierHandlebarrier_handle (output_control) barrier → HBarrier, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Barriere-Synchronisationsobjekt.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert create_barriercreate_barrierCreateBarrierCreateBarrierCreateBarriercreate_barrier
den Wert TRUE. Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
Nachfolger
wait_barrierwait_barrierWaitBarrierWaitBarrierWaitBarrierwait_barrier,
clear_barrierclear_barrierClearBarrierClearBarrierClearBarrierclear_barrier
Modul
Foundation