A joinable thread is one that you can wait for to complete. The thread that you want to wait for might already have terminated so it needs to keep some information after the thread has terminated just in case you are going to wait for it. If you know you are not going to wait for the thread to terminate you can detach the thread so that the thread can be cleaned-up as soon as it has terminated.