Arrancando correctamente los hilos en Java

Por Saiyine Enviar correo el 2008-01-06 02:47:12 - Secciones: JAVA THREADS - Enlace permanente: 811

En relación a la entrada "Ejecutar en segundo plano usando hilos (threads)", me gustaria comentar que un error muy común, que ha sido perpetuado por algún libro de texto, es creer que los métodos run y start de los hilos son equivalentes. Nada más lejos de la realidad, como os muestro con este ejemplo.

public class ThreadsEjemplo2 extends Thread
{
    
    public ThreadsEjemplo2(String str)
    {
        super(str);
    }
    
    public void run()
    {
        for (int i = 0; i < 10 ; i++)
        {
            try
            {
                Thread.sleep(Math.round(Math.random()*200));
            } catch (Exception E)
            {
               
            }
                System.out.println(getName());
        }
            System.out.println("Fin " + getName());
    }
    
    public static void main (String [] args)
    {
        new ThreadsEjemplo2("A").run();
        System.out.println("Y ahora los demás");
        new ThreadsEjemplo2("B").start();
        new ThreadsEjemplo2("C").start();
        new ThreadsEjemplo2("D").start();
    }
}

La salida de esta clase nos muestra claramente que primero se ejecuta el primer "hilo", que no es tal, sino una ejecución lineal normal y corriente debido a la llamada incorrecta a al método run en vez de al start, y luego si se lanzan los otros tres como debe ser.

A
A
A
A
A
A
A
A
A
A
Fin A
Y ahora los demás
B
D
B
C
D
B
C
C
D
B
B
C
D
B
C
B
C
D
B
C
B
D
B
Fin B
D
C
D
C
D
D
Fin D
C
Fin C

Aaah, está bien, lo admito: me pasó a mi el otro día y lo he escrito más como autorecordatorio que otra cosa.

Otras entradas de la web que podrian interesarte:

SocializerMenefante Del.icio.us Digg 


Tu nombre (Nick):

Tu correo (Email):
  Necesario para tu gravatar!

Tu página (URL):

Escribe aqui tu comentario:

       :noworry: :roll: :huh: :push: :OO 8) 8O :( :) :? :D :P :o :x :| ;) ^^ xD



Vista previa activada.

Vista previa (6/6/6, 6:66)


Fondos de pantalla

. . .

Recomendamos

  • Betsson bahis adresi betsson iddaa bahis
  • Canli bahis betsson bahis sitesinde.

. . .

Descargas

  • ApagaPC
    apagapc241.exe  (3489)
  • LimpiaDocus
    LimpiaDocus001.exe  (2767)
  • RCM
    rcm001.zip  (2346)
  • Popmail
    popmail-0.4-psmn.tar.gz  (2410)
  • Manual de Delphi en PDF
    delphi_pdf.zip  (3009)
  • Evangelio del Perl
    Evangelio_del_perl.pdf  (2822)
  • Excel Simpsons
    Excel Simpsons  (3008)
  • . . .

    Proyectos Online

  • Saiyine Store
  • Kunowalls!!!
  • Fondos de pantalla
  • Picaday: imagenes sexys o chocantes.
  • Scarlett: fotos de Scarlett Johansson
  • WhatsmyIP: obtener tu IP pública
  • Uma Thurman: galeria de Uma Thurman
  • FunPics: imagenes graciosas
  • . . .

    Blogs

  • Por lo que más querais, no entreis a estos: Tapanez, Yhandros, Onez.

  • Otros en español: El Mundo Today, La libreta de Van Gaal, Chavalina, Kirai, Mundo Geek, Microsiervos.

  • Mis lecturas en guiri: Michael Yon, Coding Horror, YCombinator news, MySQL Performance, Slashdot.

    . . .
  • Utilidades

  •  Coral  (1196), cacheando webs
  •  Spam.la  (1431), correo de usar y tirar
  •  Mailinator  (1356), correo de usar y tirar
  •  Bug me not  (1219), absurdos registros di NO
  •  Trashmail  (1251), correo de usar y tirar

    . . .

  • Busquedas


    Varios ejemplos de lo que buscaban visitantes recientes:

    . . .

    Página web ©2001-2010 Saiyine generada en s, con 4639661 visitas en total, hoy (de un total de 0 previstas).

    . . .