create_conditionT_create_conditionCreateConditionCreateConditioncreate_condition (Operator)
Name
create_conditionT_create_conditionCreateConditionCreateConditioncreate_condition — Erzeugen einer Condition-Variable.
Signatur
void CreateCondition(const HTuple& AttribName, const HTuple& AttribValue, HTuple* ConditionHandle)
void HCondition::HCondition(const HTuple& AttribName, const HTuple& AttribValue)
void HCondition::HCondition(const HString& AttribName, const HString& AttribValue)
void HCondition::HCondition(const char* AttribName, const char* AttribValue)
void HCondition::HCondition(const wchar_t* AttribName, const wchar_t* AttribValue)
(
Nur Windows)
void HCondition::CreateCondition(const HTuple& AttribName, const HTuple& AttribValue)
void HCondition::CreateCondition(const HString& AttribName, const HString& AttribValue)
void HCondition::CreateCondition(const char* AttribName, const char* AttribValue)
void HCondition::CreateCondition(const wchar_t* AttribName, const wchar_t* AttribValue)
(
Nur Windows)
def create_condition(attrib_name: MaybeSequence[Union[int, float, str]], attrib_value: MaybeSequence[Union[int, float, str]]) -> HHandle
Beschreibung
Eine Condition-Variable (kurz.: „Condition“) ist ein
Synchronisationsobjekt, das Threads erlaubt ihre Ausführung zu unterbrechen
und den Prozessor freizugeben, bis eine Eigenschaft von gemeinsamen Daten
erfüllt ist. Die grundlegende Vorgehensweise bei Conditions ist folgende:
Signalisiere die Condition, wenn die Bedingung erfüllt wird, und warte
auf die Bedingung, indem die Threadausführung
abgebrochen wird, bis ein anderer Thread die Bedingung signalisiert hat.
Eine Condition-Variable kann immer nur zusammen mit einem Mutexobjekt
verwendet werden, um Race-Bedingungen zu vermeiden. Diese würden entstehen,
wenn ein Thread auf eine Condition-Variable warten möchte, ein andere Thread
jedoch die Condition signalisiert, gerade bevor der erste Thread tatsächlich
auf die Bedingung wartet.
create_conditioncreate_conditionCreateConditionCreateConditioncreate_condition erzeugt und initialisiert die Condition-Variable
ConditionHandleConditionHandleConditionHandleconditionHandlecondition_handle entsprechend der Attribute, die dem Parameterpaar
AttribNameAttribNameAttribNameattribNameattrib_name und AttribValueAttribValueAttribValueattribValueattrib_value übergeben werden. Die aktuelle
Implementierung unterstützt jedoch keine Attribute, weshalb dem Parameter
AttribNameAttribNameAttribNameattribNameattrib_name nur der leere String ''"""""""" übergeben werden kann.
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
AttribNameAttribNameAttribNameattribNameattrib_name (input_control) number(-array) → HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Condition-Attribut.
Default:
[]
AttribValueAttribValueAttribValueattribValueattrib_value (input_control) number(-array) → HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Condition-Attributwert.
Parameteranzahl:
AttribValue == AttribName
Default:
[]
ConditionHandleConditionHandleConditionHandleconditionHandlecondition_handle (output_control) condition → HCondition, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Condition-Synchronisationsobjekt.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert create_conditioncreate_conditionCreateConditionCreateConditioncreate_condition
den Wert 2 (
H_MSG_TRUE)
. Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
Nachfolger
wait_conditionwait_conditionWaitConditionWaitConditionwait_condition,
timed_wait_conditiontimed_wait_conditionTimedWaitConditionTimedWaitConditiontimed_wait_condition,
signal_conditionsignal_conditionSignalConditionSignalConditionsignal_condition
Siehe auch
clear_conditionclear_conditionClearConditionClearConditionclear_condition
Modul
Foundation