// ----------------------------------------------------------------------------
// there are two different kinds of threads: joinable and detached (default)
// ----------------------------------------------------------------------------
// there are two different kinds of threads: joinable and detached (default)