Archivo de encabezado de la biblioteca estándar <thread>
De cppreference.com
Este archivo de encabezado es parte de la biblioteca de soporte de hilos/subprocesos.
Clases | ||
(C++11) |
Gestiona un hilo/subproceso independiente. (clase) | |
(C++20) |
std::thread con soporte para unión y cancelación autom��tica. (clase) | |
Funciones | ||
(C++11) |
Especializa el algoritmo std::swap. (función) | |
(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) | |
Serializa un objeto identificador de hilo/subproceso (thread::id . (plantilla de función) | ||
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) | |
(C++11) |
Devuelve el identificador de hilo/subproceso del hilo/subproceso actual. (función) | |
(C++11) |
Detiene la ejecución del hilo/subproceso actual por una duración de tiempo especificada. (función) | |
(C++11) |
Detiene la ejecución del hilo/subproceso actual hasta que ocurra un punto de tiempo especificado. (función) |
[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; };