procesamiento por lotes
Publicado por jorge (2 intervenciones) el 21/09/2002 01:35:08
deseo saber si alguien me puede ayudar con la simulación de procesamiento por lotes realizado en c++
gracias
gracias
Valora esta pregunta


0
#include <iostream>
#include <vector>
#include <thread>
#include <chrono>
using namespace std;
struct Proceso {
int id;
int tiempoEjecucion; // Tiempo que tarda en ejecutarse
};
void ejecutarProceso(Proceso p) {
cout << "Ejecutando proceso " << p.id << " durante " << p.tiempoEjecucion << " segundos." << endl;
this_thread::sleep_for(chrono::seconds(p.tiempoEjecucion)); // Simula el tiempo de ejecución
cout << "Proceso " << p.id << " finalizado." << endl;
}
void procesarLote(vector<Proceso> lote) {
for (const auto& p : lote) {
ejecutarProceso(p);
}
}
int main() {
vector<Proceso> procesos = {
{1, 2}, // Proceso 1 que tarda 2 segundos
{2, 3}, // Proceso 2 que tarda 3 segundos
{3, 1}, // Proceso 3 que tarda 1 segundo
{4, 4} // Proceso 4 que tarda 4 segundos
};
const int maxProcesosPorLote = 4;
vector<Proceso> lote;
for (size_t i = 0; i < procesos.size(); i++) {
lote.push_back(procesos[i]);
if (lote.size() == maxProcesosPorLote || i == procesos.size() - 1) {
cout << "Procesando lote..." << endl;
procesarLote(lote);
lote.clear(); // Limpia el lote para el siguiente
}
}
return 0;
}