Problema con hilos
Publicado: 2016-07-25 15:14 @676
Hola, buenas tardes.
Por favor, si pueden ayudarme con los hilos, necesito realizar lo siguiente:
Nota: mientras va apareciendo el número en Cargando
debajo de Resultado éste va operando con los números que ya le devuelve en Cargando.
Sin que la ejecución se detenga en Cargando...
Ejemplo:
Este ejemplo lo planteo de esta manera para hacerlo más comprensible del problema original.
Por favor, si pueden ayudarme con los hilos, necesito realizar lo siguiente:
Using text Syntax Highlighting
primer cuadro
^^^^^^^^^^^^^^^^
Cargando.........
1
Resultado:
1 + 1 = 2
^^^^^^^^^^^^^^^^
segundo cuadro
^^^^^^^^^^^^^^^^
Cargando.........
2
Resultado:
2 + 1 = 3
^^^^^^^^^^^^^^^^
tercer cuadro
^^^^^^^^^^^^^^^^
Cargando.........
3
Resultado:
3 + 1 = 4
^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^
Cargando.........
1
Resultado:
1 + 1 = 2
^^^^^^^^^^^^^^^^
segundo cuadro
^^^^^^^^^^^^^^^^
Cargando.........
2
Resultado:
2 + 1 = 3
^^^^^^^^^^^^^^^^
tercer cuadro
^^^^^^^^^^^^^^^^
Cargando.........
3
Resultado:
3 + 1 = 4
^^^^^^^^^^^^^^^^
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Nota: mientras va apareciendo el número en Cargando
debajo de Resultado éste va operando con los números que ya le devuelve en Cargando.
Sin que la ejecución se detenga en Cargando...
Ejemplo:
Using perl Syntax Highlighting
- #! /usr/bin/perl
- use threads;
- use strict;
- use threads::shared;
- my @compartida :shared = 0 ;
- print "Cargando........\n";
- my $hilo = threads->create(&hiloA);
- #&hiloA(); <--- hiloA es un proceso que es muy largo demora bastante tiempo y puede ir devolviendo resultados conforme va terminando, ( sin necesidad de esperar a que termine el proceso para devolver todo los valores y guardarlos en el array)
- lo que no se quiere es justamente esperar a que termine este proceso
- lo contrario ir almacenando en el array mientras vaya arrojando valores.
- sub hiloA
- {
- my $i=0;
- while ($i <= 10)
- {
- sleep(2); <-- simular retardo asumimos que este procedimiento es pesado y demora bastante
- push (@compartida,$i); <-- voy almacenando en u array los valores del 1 al 10
- $i = $i + 1;
- }
- }
- my $rpta = $hilo->join();
- print "Respuesta.. \n";
- foreach (@compartida)
- {
- print " $_ + 1 = ".$_ + 1."\n";
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Este ejemplo lo planteo de esta manera para hacerlo más comprensible del problema original.