thread (Clase)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Define un objeto que se utiliza para observar y administrar un subproceso de ejecución dentro de una aplicación.

class thread;

Se puede utilizar un objeto thread para observar y administrar un subproceso de ejecución dentro de una aplicación. Un objeto thread creado con el constructor predeterminado no está asociado a ningún subproceso de ejecución. Un objeto thread construido mediante un objeto al que se puede llamar crea un nuevo subproceso de ejecución y llama al objeto al que se puede llamar en ese subproceso. Los objetos thread se pueden mover pero no copiar. Por tanto, un subproceso de ejecución solo se puede asociar a un objeto thread.

Cada subproceso de ejecución tiene un identificador único de tipo thread::id. La función this_thread::get_id devuelve el identificador del subproceso que realiza la llamada. La función miembro thread::get_id devuelve el identificador del subproceso administrado por un objeto thread. Para un objeto thread creado con el constructor predeterminado, el método thread::get_id devuelve un objeto cuyo valor es el mismo para todos los objetos thread creados con el constructor predeterminado y diferente del valor devuelto por this_thread::get_id para cualquier subproceso de ejecución que se pueda unir en el momento de la llamada.

Clases públicas

NameDescripción
Thread::ID (clase)Identifica de forma única el subproceso asociado.

Constructores públicos

NombreDescripción
Constructor de Thread::ThreadConstruye un objeto thread.

Métodos públicos

NombreDescripción
Thread:: Detach (método)Desasocia el subproceso asociado del objeto thread.
Thread:: get_id (método)Devuelve el identificador único del subproceso asociado.
Thread:: hardware_concurrency (método)Estático. Devuelve una estimación del número de contextos de subprocesos de hardware.
Thread:: Join (método)Se bloquea hasta que el subproceso asociado se completa.
Thread:: joinable (método)Especifica si se puede unir el subproceso asociado.
Thread:: native_handle (método)Devuelve el tipo específico de la implementación que representa el identificador de subproceso.
Thread:: swap (método)Intercambia el estado de objeto con un objeto thread especificado.

Operadores públicos

NombreDescripción
Thread:: operator =Asocia un subproceso al objeto thread actual.

Encabezado: subproceso

Espacio de nombres: std

Desasocia el subproceso asociado. El sistema operativo pasa a ser responsable de liberar recursos de subproceso de finalización.

void detach();

Comentarios

Después de llamar a detach, las siguientes llamadas a get_id devolver id.

Si el subproceso que está asociado con el objeto de llamada no puede unir, la función produce una system_error que tiene un código de error de invalid_argument.

Si el subproceso que está asociado con el objeto de llamada no es válido, la función produce una system_error que tiene un código de error de no_such_process.

Devuelve un identificador único para el subproceso asociado.

id get_id() const noexcept;

Valor devuelto

Un thread::id objeto que identifica el subproceso asociado, o thread::id() si ningún subproceso está asociado con el objeto.

Método estático que devuelve una estimación del número de contextos de subprocesos de hardware.

static unsigned int hardware_concurrency() noexcept;

Valor devuelto

Una estimación del número de contextos de subprocesos de hardware. Si el valor no se puede calcular o no está bien definido, este método devuelve 0.

Proporciona un identificador único para cada subproceso de ejecución en el proceso.

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

Comentarios

El constructor predeterminado crea un objeto que no se compara como igual a la thread::id objeto para cualquier subproceso existente.

Construido de forma predeterminada todos los thread::id objetos son iguales.

Se bloquea hasta que finaliza el subproceso de ejecución que está asociado con el objeto de llamada.

void join();

Comentarios

Si la llamada se realiza correctamente, las llamadas subsiguientes a get_id para el objeto que realiza la llamada devuelve un valor predeterminado thread::id que no son iguales a la thread::id de cualquier subproceso existente; si la llamada no tiene éxito, el valor devuelto por get_id no cambia.

Especifica si el subproceso asociado se puede unir.

bool joinable() const noexcept;

Valor devuelto

trueSi el subproceso asociado es puede unir; en caso contrario, false.

Comentarios

Es un objeto de subproceso puede unir si get_id() != id().

Devuelve el tipo específico de la implementación que representa el identificador de subproceso. El identificador de subproceso puede utilizarse en aspectos específicos de la implementación.

native_handle_type native_handle();

Valor devuelto

native_handle_typese define como Win32 HANDLE que se convierte en void *.

El subproceso de un objeto especificado se asocia con el objeto actual.

thread& operator=(thread&& Other) noexcept;

Parámetros

Other
Objeto thread.

Valor devuelto

*this

Comentarios

Las llamadas al método detach si se puede unir el objeto que realiza la llamada.

Una vez realizada la asociación, Other se establece en un estado construido de forma predeterminada.

Intercambia el estado del objeto con el de un objeto thread objeto.

void swap(thread& Other) noexcept;

Parámetros

Other
Objeto thread.

Construye un objeto thread.

thread() noexcept;
template <class Fn, class... Args>
explicit thread(Fn&& F, Args&&... A);

thread(thread&& Other) noexcept;

Parámetros

F
Una función definida por la aplicación que va a ejecutar el subproceso.

A
Una lista de argumentos que se pasan a F.

Other
Objeto thread existente.

Comentarios

El primer constructor crea un objeto que no está asociado con un subproceso de ejecución. El valor devuelto por una llamada a get_id para el objeto construido es thread::id().

El segundo constructor crea un objeto que está asociado a un nuevo subproceso de ejecución y se ejecuta la función pseudo INVOKE que se define en <> </> > . Si no hay suficientes recursos disponibles para iniciar un nuevo subproceso, la función produce una system_error objeto que tiene un código de error resource_unavailable_try_again. Si la llamada a F finaliza con una excepción no detectada, finalizar se llama.

El tercer constructor crea un objeto que está asociado con el subproceso que está asociado a Other. Otherse establece en un estado construido de forma predeterminada.

Referencia de archivos de encabezado
<>>

Mostrar: