std::jthread:: joinable
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Observers | ||||
|
jthread::joinable
|
||||
| Operations | ||||
| Stop token handling | ||||
| Non-member functions | ||||
|
bool
joinable
(
)
const
noexcept
;
|
(seit C++20) | |
Prüft, ob das
std::jthread
-Objekt einen aktiven Ausführungsthread identifiziert. Gibt spezifisch
true
zurück, falls
get_id
(
)
!
=
std
::
jthread
::
id
(
)
. Somit ist ein standardkonstruierter
jthread
nicht joinable.
Ein Thread, der die Ausführung des Codes beendet hat, aber noch nicht gejoined wurde, wird immer noch als aktiver Ausführungsthread betrachtet und ist daher joinable.
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
true
wenn das
std::jthread
-Objekt einen aktiven Ausführungs-Thread identifiziert,
false
andernfalls.
Beispiel
#include <chrono> #include <iostream> #include <thread> using namespace std::chrono_literals; void foo() { std::this_thread::sleep_for(500ms); } int main() { std::cout << std::boolalpha; std::jthread t; std::cout << "before starting, joinable: " << t.joinable() << '\n'; t = std::jthread{foo}; std::cout << "after starting, joinable: " << t.joinable() << '\n'; t.join(); std::cout << "after joining, joinable: " << t.joinable() << '\n'; t = std::jthread{foo}; t.detach(); std::cout << "after detaching, joinable: " << t.joinable() << '\n'; }
Ausgabe:
before starting, joinable: false after starting, joinable: true after joining, joinable: false after detaching, joinable: false
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
- 33.4.4.3 Memberfunktionen [thread.jthread.mem]
- C++20-Standard (ISO/IEC 14882:2020):
-
- 32.4.3.2 Memberfunktionen [thread.jthread.mem]
Siehe auch
|
gibt die
id
des Threads zurück
(öffentliche Elementfunktion) |
|
|
wartet auf die Beendigung der Thread-Ausführung
(öffentliche Elementfunktion) |
|
|
erlaubt dem Thread die unabhängige Ausführung vom Thread-Handle
(öffentliche Elementfunktion) |