Multithread-Programme

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Referenz zur C-Laufzeitbibliothek

Win32-Programme können mehrere Ausführungs-Threads erstellen. Wenn ein Programm mehrere Threads erstellt und diese Threads die C++-Laufzeitbibliothek benutzen, müssen Sie die Bibliothek CW32MT.LIB oder CW32MTI.LIB verwenden.

Die Multithread-Bibliotheken stellen die folgenden Funktionen zum Erstellen von Threads bereit:

Die Multithread-Bibliotheken stellen auch die zugehörigen Funktionen zum Beendigen von Threads zur Verfügung:

Die Header-Datei stddef.h enthält die Deklaration der Variablen _threadid.

Zum Compilieren und Linken eines Multithread-Programms müssen Sie die Compiler-Option -tWM angeben. Ein Beispiel:

BCC32 -tWM THREAD.C

Anmerkung:  Seien Sie insbesondere vorsichtig, wenn Sie die Funktion signal in einem Multithread-Programm verwenden. Die Signale SIGINT, SIGTERM und SIGBREAK können in einer nicht unter Win32 laufenden Anwendung nur vom Haupt-Thread (Thread eins) verwendet werden. Wird eines dieser Signals ausgelöst, dann wird der aktuell ausgeführte Thread ausgesetzt und die Steuerung geht, sofern vorhanden, an die Signalbehandlungsroutine über, die von Thread eins eingerichtet wurde. Andere Signale können von jedem Thread behandelt werden. Eine Signalbehandlungsroutine sollte keine Funktionen der C++ Laufzeitbibliothek verwenden, da dabei ein Semaphor-Deadlock auftreten könnte. Stattdessen sollte die Behandlungsroutine ein Flag setzen oder einen Semaphor senden und unmittelbar darauf zurückkehren.

Siehe auch