• Publicidad

Duda sobre hilos

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Duda sobre hilos

Notapor Xer0f » 2012-11-07 14:25 @642

Buen día.

Tengo la siguiente duda, en mi programa necesito que un hilo 1 se ejecute y otro hilo 2 esperé a que termine el hilo 1 pero hilo 2 imprima puntos (.) hasta que el hilo 1 termine.
Xer0f
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-11-07 14:19 @638

Publicidad

Re: Duda sobre hilos

Notapor explorer » 2012-11-07 15:27 @685

Bienvenido a los foros de Perl en Español, Xer0f.

¿Con fork o threads?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Duda sobre hilos

Notapor Xer0f » 2012-11-07 17:04 @753

Hola explorer, gracias por la bienvenida.

Lo quiero realizar con hilos, hasta ahora encontré una manera de esperar a que un hilo termine.

my $thread = threads->new(\&flash,$software_download); while($thread->is_running)
{
#imprimir Cargando . . .
}

No sé si exista una forma mejor para realizarlo. También quiero hacer que se vean varios puntos y simulando que está cargando.

Saludos.
Xer0f
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-11-07 14:19 @638

Re: Duda sobre hilos

Notapor explorer » 2012-11-07 17:48 @783

Sí, esa es una manera, la de preguntar si tal hilo sigue funcionando.

Otras... creo que son más alambicadas (semáforos, banderas...)

El progreso (con los puntos), lo tienes sencillo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $|++;  # quitamos el caché de salida
  2. while ($thread->is_running) {
  3.     print '.';    # ¡dot!
  4.     sleep 1;      # esperamos 1 s
  5. }
  6. print "\n";
  7.  
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4

Es necesario modificar $| para que la salida de los puntos sea inmediata, uno a uno. Si no, saldrían todos de golpe. Y el sleep() es necesario para que el bucle no se lleve toda la carga de la CPU.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Duda sobre hilos

Notapor Xer0f » 2012-11-07 18:29 @811

Gracias, explorer, estaba realizando de otra manera la forma de imprimir los puntos pero como tú la pones es más sencilla que la mía.
Xer0f
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-11-07 14:19 @638


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados