Hallo HaWe,
ein thread ist ein paralleler Ablauf "Faden".
joinable() gibt an, ob der Thread bereit ist für einen join(). Das ist er bsp. wenn er läuft oder er seine thread Funktion beendet hat (mit return oder einfach die Funktion verlassen hat).
Ein Thread ist nicht joinable(), wenn er detached gestartet wurde. Detached bedeutet, dass er sozusagen im Hintergrund in deinem Programm läuft. Dein Handle ist dann nicht mehr gültig und du hast keine "Verbindung" mehr zu ihm, außer dass du eventuell Syncronisationsobjekte oder atomare Variable hast, mit dem du mit ihm kommunizierst. Du machst einen Thread detached, wenn du dich nicht um seine Lebenszeit kümmern willst. ABER: Bei Programende must du doch irgendwie dafür sorgen, das er sauber beendet wird.
Meine Empfehlung: Starte ihn joinable und kümmer dich um seine Lebenszeit.
Bei boost [1] oder bei cppreference [2] kannst du noch mehr darüber erfahren.
[1] https://www.boost.org/doc/libs/1_70_...ml/thread.html
[2] https://en.cppreference.com/w/cpp/thread/thread
Lesezeichen