Skip to content

Latest commit

 

History

History
64 lines (34 loc) · 1.65 KB

File metadata and controls

64 lines (34 loc) · 1.65 KB

Nochmals nebenläufige Ausführung: Klasse std::jthread

Zurück


Inhalt


Verwendete Werkzeuge

Klassen:

  • Klasse std::thread
  • Klasse std::jthread

Quellcode

JThread.cpp: std::jthread-Objekt und join()-Aufruf.


Allgemeines

Die Implementierung der std::jthread-Klasse basiert auf der bereits vorhandenen Klasse std::thread.

Die std::jthread-Klasse ist eine Wrapper-Klasse um Klasse std::thread herum, sie stellt dieselben öffentlichen Methoden bereit, die die Aufrufe einfach weiterleiten.

Es kann folglich jedes std::thread-Objekt in ein std::jthread-Objekt umgewandelt werden, dieses verhält sich dann genau so, wie sich ein entsprechendes std::thread-Objekt verhalten würde.


Verhalten der Klassen std::jthread und std::jthread bzgl. des join-Aufrufs

Wenn ein std::thread-Objekt den Zustand joinable besitzt und dieses auf Grund des Verlassens eines Blocks (Gültigkeitsbereichs) aufgeräumt wird, wird in seinem Destruktor automatisch std::terminate aufgerufen.

Ein std::thread-Objekt besitzt den Zustand joinable, wenn am Objekt keine der beiden Methoden join() oder detach() aufgerufen wurde.

Ein Objekt der Klasse std::jthread verhält sich hier anders: Der Destruktor des Objekts ruft automatisch join auf, wenn sich der Thread noch im Zustand joinable befindet.


Zurück