##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# Standard library header <thread>

From cppreference.com
< cpp‎ | header

This header is part of the thread support library.

### Classes
thread (C++11) | manages a separate thread (class) [edit]
### Functions
std::swap(std::thread) (C++11) | specializes the std::swap algorithm (function template) [edit]
operator==operator!=operator< operator<= operator> operator>= | compares two `thread::id` objects (function) [edit]
operator<< | serializes a `thread::id` object (function template) [edit]
std::hash<std::thread::id> | specializes std::hash (class template specialization)
### Namespaces
`this_thread` | provide functions that access the current thread of execution
##### Functions
Defined in namespace `std::this_thread`
yield (C++11) | suggests that the implementation reschedule execution of threads (function) [edit]
get_id (C++11) | returns the thread id of the current thread (function) [edit]
sleep_for (C++11) | stops the execution of the current thread for a specified time duration (function) [edit]
sleep_until (C++11) | stops the execution of the current thread until a specified time point (function) [edit]

### [edit] Synopsis

    namespace std {
        class thread;

        void swap(thread& x, thread& y) noexcept;

        bool operator==(thread::id x, thread::id y) noexcept;
        bool operator!=(thread::id x, thread::id y) noexcept;

        bool operator<(thread::id x, thread::id y) noexcept;
        bool operator<=(thread::id x, thread::id y) noexcept;
        bool operator>(thread::id x, thread::id y) noexcept;
        bool operator>=(thread::id x, thread::id y) noexcept;

        template<class CharT, class Traits>
        basic_ostream<CharT, Traits>& operator<<(basic_ostream<CharT, Traits>& out,
                                                thread::id id);

        template <class T> struct hash;
        template <> struct hash<thread::id>;

        namespace this_thread {

            thread::id get_id() noexcept;
            void yield() noexcept;
            template <class Clock, class Duration>
                void sleep_until(const chrono::time_point<Clock, Duration>& abs_time);
            template <class Rep, class Period>
                void sleep_for(const chrono::duration<Rep, Period>& rel_time);

        }
    }

#### [edit] Class std::thread

    class thread {
     public:
        // types:
        class id;
        typedef /*implementation-defined*/ native_handle_type;

        // construct/copy/destroy:
        thread() noexcept;
        template <class F, class ...Args> explicit thread(F&& f, Args&&... args);
        ~thread();
        thread(const thread&) = delete;
        thread(thread&&) noexcept;
        thread& operator=(const thread&) = delete;
        thread& operator=(thread&&) noexcept;

        // members:
        void swap(thread&) noexcept;
        bool joinable() const noexcept;
        void join();
        void detach();
        id get_id() const noexcept;
        native_handle_type native_handle();

        // static members:
        static unsigned hardware_concurrency() noexcept;
    };

#### [edit] Class std::thread::id

    class thread::id {
     public:
        id() noexcept;
    };

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/header/thread&oldid=83390"