std::this_thread::yield
De cppreference.com
Definido en el archivo de encabezado <thread>
|
||
void yield(); |
(desde C++11) | |
Proporciona una sugerencia a la implementación de reprogramar la ejecución del hilo, lo que permite que se ejecuten otros hilos.
Contenido |
[editar] Parámetros
(Ninguno)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Valor de retorno
(Ninguno)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Notas
El comportamiento exacto de esta función depende de la implementación, en particular de la mecánica
del planificador del sistema operativo en curso y el estado del sistema. Por ejemplo, un planificador de tiempo real de primeras entradas, primeras salidas (SCHED_FIFO
en Linux) suspendería el hilo actual y lo pondría al final de la cola de hilos con la misma prioridad que no están listos para ser ejecutados (y si no hay otros hilos con la misma prioridad, yield
no tiene efecto).
[editar] Ejemplo
Ejecuta este código
#include <iostream> #include <chrono> #include <thread> // "sueño ocupado" mientras se sugiere que se ejecuten otros hilos // por una pequeña cantidad de tiempo void dormir_poco(std::chrono::microseconds us) { auto inicio = std::chrono::high_resolution_clock::now(); auto fin = inicio + us; do { std::this_thread::yield(); } while (std::chrono::high_resolution_clock::now() < fin); } int main() { auto inicio = std::chrono::high_resolution_clock::now(); dormir_poco(std::chrono::microseconds(100)); auto elapsed = std::chrono::high_resolution_clock::now() - inicio; std::cout << "se ha esperado " << std::chrono::duration_cast<std::chrono::microseconds>(elapsed).count() << " microsegundos\n"; }
Posible salida:
se ha esperado 128 microsegundos
[editar] Véase también
Documentación de C para thrd_yield
|