mercredi 15 juin 2011

Pour un thread quelle est la différence entre l'invocation de la méthode start() et run() ?

Pour commencer, il nous faut un thread bien dodu.
On associe souvent un Runnable à un un thread. Du coup, on dispose de plusieurs méthodes:

- La méthode start() du thread
- La méthode run() du thread
- La méthode run() du Runnable associé au thread

la méthode start() du thread permet de lancer un nouveau thread; et appelle la méthode run() du Runnable associé.
Une fois la méthode start() appelée, elle rend la main immédiatement, et l'exécution du thread continue jusqu'à ce que l'appel de
la méthode run() du Runnable se termine.

La méthode run() du thread appelle simplement la méthode run() du Runnable.

petit + : bien qu'elle ne soit pas , il n'est pas conseillé d'overrider la méthode start() d'un thread.

Exemple d'une différence importante:

----------------------
ces deux instructions vont s'exécuter séquentiellement:

new Thread(...).run()
new Thread(...).run()

Tandis que ces deux autres lignes vont s'exécuter en parallèle:

new Thread(...).start()
new Thread(...).start()

----------------------

Merci de votre attention, et si vous êtes sages, demain je vous ferais
de la gerboulade d'escargots.

0 commentaires: