Questions ListCategory: c++what is meaning of joining thread in c++ thread.join
maol asked 2 years ago

  1. Let us see below simple example
#include <iostream>
#include <thread>
using namespace std;

void func(int x) {
    cout << "Inside thread " << x << endl;

int main() {
    thread th(&func, 100);
    cout << "Outside thread" << endl;
    return 0;

What is meaning of th.join, explain it more

Related Contents to follow

jska replied 2 years ago

Without th.join() , The output would be
Outside thread
Inside thread 100

and with th.join()

Inside thread 100
Outside thread

1 Answers
wikistack Staff answered 2 years ago

The pthread_join() function shall suspend execution of the calling thread until the target thread terminates, unless the target thread has already terminated. On return from a successful pthread_join() call with a non-NULL value_ptr argument, the value passed to pthread_exit() by the terminating thread shall be made available in the location referenced by value_ptr. When a pthread_join() returns successfully, the target thread has been terminated. The results of multiple simultaneous calls to pthread_join() specifying the same target thread are undefined. If the thread calling pthread_join() is canceled, then the target thread shall not be detached. It is unspecified whether a thread that has exited but remains unjoined counts against {PTHREAD_THREADS_MAX}.

Related Contents to follow