GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::thread::join(3) C++ Standard Libary std::thread::join(3)

std::thread::join - std::thread::join


void join(); (since C++11)


Blocks the current thread until the thread identified by *this finishes its
execution.


The completion of the thread identified by *this synchronizes with the corresponding
successful return from join().


No synchronization is performed on *this itself. Concurrently calling join() on the
same thread object from multiple threads constitutes a data race that results in
undefined behavior.


(none)


(none)


joinable() is false


std::system_error if an error occurs.


* resource_deadlock_would_occur if this->get_id() == std::this_thread::get_id()
(deadlock detected)
* no_such_process if the thread is not valid
* invalid_argument if joinable() is false

// Run this code


#include <iostream>
#include <thread>
#include <chrono>


void foo()
{
// simulate expensive operation
std::this_thread::sleep_for(std::chrono::seconds(1));
}


void bar()
{
// simulate expensive operation
std::this_thread::sleep_for(std::chrono::seconds(1));
}


int main()
{
std::cout << "starting first helper...\n";
std::thread helper1(foo);


std::cout << "starting second helper...\n";
std::thread helper2(bar);


std::cout << "waiting for helpers to finish..." << std::endl;
helper1.join();
helper2.join();


std::cout << "done!\n";
}


starting first helper...
starting second helper...
waiting for helpers to finish...
done!


* C++20 standard (ISO/IEC 14882:2020):


* 32.4.2.5 Members [thread.thread.member]


* C++17 standard (ISO/IEC 14882:2017):


* 33.3.2.5 thread members [thread.thread.member]


* C++14 standard (ISO/IEC 14882:2014):


* 30.3.1.5 thread members [thread.thread.member]


* C++11 standard (ISO/IEC 14882:2011):


* 30.3.1.5 thread members [thread.thread.member]


detach permits the thread to execute independently from the thread handle
(public member function)
checks whether the thread is joinable, i.e. potentially running in parallel
joinable context
(public member function)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.