Espacios de nombres
Variantes
Acciones

Archivo de encabezado de la biblioteca estándar <thread>

De cppreference.com
< cpp‎ | header
 
 
Archivos de encabezado de la biblioteca estándar
 

Este archivo de encabezado es parte de la biblioteca de soporte de hilos/subprocesos.

Contenido

Clases

(C++11)
Gestiona un hilo/subproceso independiente.
(clase) [editar]
(C++20)
std::thread con soporte para unión y cancelación autom��tica.
(clase) [editar]

Funciones

Especializa el algoritmo std::swap.
(función) [editar]
(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(C++20)
Compara dos objetos thread::id.
(función) [editar]
Serializa un objeto identificador de hilo/subproceso (thread::id.
(plantilla de función) [editar]
Especializa a std::hash
(especialización de plantilla de clase)

Espacios de nombres

this_thread Proporciona funciones que acceden al hilo de ejecución actual.
Funciones
Definido en el espacio de nombres std::this_thread
(C++11)
Sugiere a la implementación que reprograme la ejecución de hilos.
(función) [editar]
(C++11)
Devuelve el identificador de hilo/subproceso del hilo/subproceso actual.
(función) [editar]
(C++11)
Detiene la ejecución del hilo/subproceso actual por una duración de tiempo especificada.
(función) [editar]
Detiene la ejecución del hilo/subproceso actual hasta que ocurra un punto de tiempo especificado.
(función) [editar]

[editar] Sinopsis

namespace std {
    class thread;
 
    void swap(thread& x, thread& y) noexcept;
 
    // clase jthread
    class jthread;
 
    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);
 
    }
}

[editar] Clase std::thread

class thread {
 public:
    // tipos:
    class id;
    typedef /*definido por la implementación*/ native_handle_type;
 
    // construcción/copia/destrucción:
    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;
 
    // miembros:
    void swap(thread&) noexcept;
    bool joinable() const noexcept;
    void join();
    void detach();
    id get_id() const noexcept;
    native_handle_type native_handle();
 
    // miembros estáticos:
    static unsigned hardware_concurrency() noexcept;
};

[editar] Clase std::jthread

namespace std {
    class jthread {
    public:
        // tipos
        using id = thread::id;
        using native_handle_type = thread::native_handle_type;
 
        // constructores, movimientos y asignación
        jthread() noexcept;
        template<class F, class... Args> explicit jthread(F&& f, Args&&... args);
        ~jthread();
        jthread(const jthread&) = delete;
        jthread(jthread&&) noexcept;
        jthread& operator=(const jthread&) = delete;
        jthread& operator=(jthread&&) noexcept;
 
        // miembros
        void swap(jthread&) noexcept;
        [[nodiscard]] bool joinable() const noexcept;
        void join();
        void detach();
        [[nodiscard]] id get_id() const noexcept;
        [[nodiscard]] native_handle_type native_handle();
 
        // manejo de símbolo de detención
        [[nodiscard]] stop_source get_stop_source() noexcept;
        [[nodiscard]] stop_token get_stop_token() const noexcept;
        bool request_stop() noexcept;
 
        // algoritmos especializados
        friend void swap(jthread& lhs, jthread& rhs) noexcept;
 
        // miembros estáticos
        [[nodiscard]] static unsigned int hardware_concurrency() noexcept;
 
    private:
        stop_source ssource;        // solo exposición
    };
}

[editar] Clase std::thread::id

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