La programación concurrente permite que múltiples tareas o procesos se ejecuten simultáneamente, lo que puede mejorar el rendimiento y la capacidad de respuesta de los programas. En C++, la concurrencia se maneja a través de hilos (threads), que son secuencias de ejecución independientes dentro de un programa.
Beneficios de la concurrencia:
Consideraciones:
threads) en C++11Antes de C++11, la programación de hilos en C++ se realizaba utilizando bibliotecas externas como POSIX Threads o APIs específicas del sistema operativo. Con C++11, el lenguaje introdujo soporte estándar para la concurrencia.
Para crear un hilo en C++11, se utiliza la clase std::thread del encabezado <thread>.
Ejemplo básico de creación de un hilo:
#include <iostream>
#include <thread>
void tarea() {
std::cout << "Ejecutando tarea en un hilo separado." << std::endl;
}
int main() {
std::thread hilo(tarea); // Crear un hilo que ejecuta la función 'tarea'
// Hacer algo en el hilo principal
std::cout << "Hilo principal ejecutando." << std::endl;
// Esperar a que el hilo termine
hilo.join();
return 0;
}
Explicación:
std::thread hilo(tarea);: Se crea un nuevo hilo que ejecuta la función tarea.hilo.join();: El hilo principal espera a que el hilo hilo termine antes de continuar.