C/Visual C - procesamiento por lotes

 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Simulación de procesamiento por lotes en C++

Publicado por Alejandro (913 intervenciones) el 24/03/2025 17:18:46
Para simular el procesamiento por lotes en C++, puedes crear un programa que gestione un conjunto de procesos, los agrupe en lotes y simule su ejecución. A continuación, te muestro un ejemplo básico de cómo podrías implementar esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#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;
}

Explicación del código:


1. Estructura proceso: Define un proceso con un ID y un tiempo de ejecución.
2. Función ejecutarProceso: Simula la ejecución de un proceso, imprimiendo su inicio y finalización.
3. Función procesarLote: Toma un lote de procesos y los ejecuta uno por uno.
4. Función main: Crea una lista de procesos, los agrupa en lotes y los procesa.

Este código es un punto de partida y puedes expandirlo según tus necesidades, como agregar validaciones, manejar errores o mejorar la interfaz de usuario. ¡Buena suerte con tu simulación, Jorge!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar