
Thread is a sequence of instructions that can be executed concurrently with other such sequences in multithreading environments, while sharing a same address spac.
| Sr.No. | Member type & description |
|---|---|
| 1 | id
It is a thread id. |
| 2 | Native handle type
It is a native handle type. |
| Sr.No. | Member function & description |
|---|---|
| 1 | (constructor)
It is used to construct thread. |
| 2 | (destructor)
It is used to destructor thread. |
| 3 | operator=
It is a move-assign thread. |
| 4 | get_id
It is used to get thread id. |
| 5 | joinable
It is used to check if joinable. |
| 6 | join
It is used to join thread. |
| 7 | detach
It is used to detach thread. |
| 8 | swap
It is used to swap threads. |
| 9 | native_handle
It is used to get native handle. |
| 10 | hardware_concurrency [static]
It is used to detect hardware concurrency. |
| Sr.No. | Non-member overload & description |
|---|---|
| 1 | swap (thread)
It is used to swap threads. |
In below example for std::thread.
#include <iostream>
#include <thread>
void foo() {
std::cout << " foo is executing concurrently...\n";
}
void bar(int x) {
std::cout << " bar is executing concurrently...\n";
}
int main() {
std::thread first (foo);
std::thread second (bar,0);
std::cout << "main, foo and bar now execute concurrently...\n";
first.join();
second.join();
std::cout << "foo and bar completed.\n";
return 0;
}
The output should be like this −
main, foo and bar now execute concurrently... bar is executing concurrently... foo is executing concurrently... foo and bar completed.