Sobes.tech
Junior — Middle

¿Qué mecanismos principales conoces para gestionar la multitarea?

sobes.tech AI

Respuesta de la IA

Los mecanismos principales de control de la multitarea en C/C++ incluyen:

  • Mutexes (mutexes) — para la exclusión mutua en el acceso a recursos compartidos.
  • Variables de condición (condition variables) — para la sincronización de hilos, esperando condiciones específicas.
  • Semáforos (semaphores) — para limitar la cantidad de hilos que trabajan simultáneamente con un recurso.
  • Operaciones atómicas (atomic operations) — para modificar variables de forma segura sin bloqueos.
  • Hilos (std::thread) — creación y gestión de hilos.

Ejemplo de uso de un mutex:

#include <iostream>
#include <thread>
#include <mutex>

std::mutex mtx;
int counter = 0;

void increment() {
    for (int i = 0; i < 1000; ++i) {
        std::lock_guard<std::mutex> lock(mtx);
        ++counter;
    }
}

int main() {
    std::thread t1(increment);
    std::thread t2(increment);
    t1.join();
    t2.join();
    std::cout << "Contador: " << counter << std::endl;
    return 0;
}