Skip to main content

class thread

namespace std {
class thread {
public:
class id;
typedef pthread_t native_handle_type;
thread() noexcept;
template <class F, class ...Args> explicit thread(F&& f, Args&&... args);
thread(const thread&) = delete;
thread(thread&& t) noexcept;
~thread();

void detach();
id get_id() const noexcept;
static unsigned hardware_concurrency() noexcept;
void join();
bool joinable() const noexcept;
native_handle_type native_handle();
void swap(thread& t) noexcept;

thread& operator=(const thread&) = delete;
thread& operator=(thread&& t) noexcept;
};
}

Multithreading

To multithread in C++ you must create a std::thread object with a function pointer like so:

std::thread thread1(function1, args...);

Example:

#include <thread>
#include <iostream>

int result = 0;

void function1(int x, int y) {
result = x + y;
}

int main() {
std::thread thread1(function1, 4, 6);
std::cout << "Working in another thread" << std::endl;
thread1.join();
std::cout << "Here is the result: " << result << std::endl;
}

Constructor

thread() noexcept;
template <class F, class ...Args> explicit thread(F&& f, Args&&... args);
thread(const thread&) = delete;
thread(thread&& t) noexcept;

Creates a thread object.

swap()

void swap(thread& t) noexcept;