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) |
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);
}
}
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;
};
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
};
}
Clase std::thread::id
class thread::id {
public:
id() noexcept;
};