- ¿Qué ventajas ofrece sobre
std::thread
? - ¿Despreciará el existente?
std::thread
?
std::jthread
es como std::thread
, solo que sin la estupidez. Ver, std::thread
El destructor terminaría el programa si no lo hicieras. join
o separarlo manualmente de antemano. Esto condujo a toneladas de errores, ya que la gente esperaría que se uniera a la destrucción.
jthread
arregla esto; se une en la destrucción de forma predeterminada (de ahí el nombre: “subproceso de unión”). También admite un mecanismo para pedirle a un subproceso que detenga la ejecución, aunque esto no se aplica (también conocido como: no puede hacer otro hilo deja de ejecutarse).
En la actualidad, no hay ningún plan para desaprobar std::thread
.
-
@Waqar: podría verlo de esa manera, pero no necesariamente se implementa de esa manera.
– Nicolás Bolas
11 de junio de 2020 a las 13:43
-
Me pregunto de quién fue la brillante idea de intentar incluir una función de suspensión de ejecución. Eso nunca funciona. No ha funcionado en ninguna parte en 30 años de hilos. Todos tendrán que usar sus propias variables de condición explícitas como siempre lo han hecho.
– Zan Lince
11 de junio de 2020 a las 13:44
-
> admite un mecanismo para pedirle a un hilo que detenga la ejecución, supongo que te refieres
stop_source
aquí, si es así, ¿cómo se vería eso en el código?– Waqar
11 de junio de 2020 a las 13:44
-
@ZanLynx eso tiene una variable de condición explícita, que pasa a la función que ejecuta.
– Caleth
11 de junio de 2020 a las 13:58
-
@Waqar tomas un
std::stop_token
como el primer parámetro de su función, y verifique periódicamente sistop_requested
es verdad– Caleth
11/06/2020 a las 14:00
es.cppreference.com/w/cpp/thread/jthread
– 463035818_no_es_un_número
11 de junio de 2020 a las 13:37