questions sur les threads - Java - Programmation
Marsh Posté le 17-06-2003 à 07:58:13
karim63 a écrit : |
http://java.sun.com/j2se/1.4.1/doc [...] hread.html
sleep est une méthode statique. Cela signifie qu'elle ne s'appelle pas sur un objet particulier, mais sur une classe (ici java.lang.Thread). Elle n'a pas accès éléments non statique (les méthodes et attributs) dans la classe.
Cela permet de mettre des traitements qui ne sont pas de l'ordre d'un objet particulier, mais qui impactent toutes les instances d'une certaine classe.
Marsh Posté le 17-06-2003 à 08:33:33
karim63 a écrit : Quand un objet qui extends ou implement thread est en pause, est il possible d'executer une methode de cet objet ? |
bha oui ... à moins qu'elles soit synchronizée que le thread qui dort soit en pause dans une méthode synchronizée aussi
Marsh Posté le 17-06-2003 à 11:17:24
Attention, karim, ne confonds pas le thread proprement dit, à l'exécution, et la localisation du code à exécuter dans ton programme.
Tant qu'un thread est endormi, il n'exécutera aucun code. C'est clair.
Maintenant, le fait qu'une méthode soit dans une sous-classe de Thread n'empêche en rien qu'un autre thread (qui n'est pas une instance de cette classe) ne puisse pas l'appeler.. Donc, un autre thread -- voire le thread du main -- peut tout à fait appeler une méthode de la sous-classe de Thread, même si toutes les instances de cette sous-classes sont des threads endormis.
Et c'est ce thread-là, celui qui appelle la méthode, qui va exécuter la méthode, évidemment.
Autrement dit, le thread qui appelle la méthode ne "demande" pas au thread endormi d'exécuter cette méthode, il l'exécute lui-même. Bref, c'est un simple appel de fonction. Plus simple et plus logique, non ?
Marsh Posté le 17-06-2003 à 13:26:11
ok merci, c'est ce que je voulais savoir
Marsh Posté le 17-06-2003 à 04:21:56
Quand un objet qui extends ou implement thread est en pause, est il possible d'executer une methode de cet objet ?
Par exemple de l'exterieur de cet objet avec un autre thread.
Dans le code qui suit je ne comprends pas le sens de Thread.sleep(1000)
Je comprends pas sur quoi la methode s'execute.
http://java.sun.com/docs/books/tut [...] clock.html
Pourquoi c'est pas myThread.sleep(1000) a la place ?
Merci
Message édité par karim63 le 17-06-2003 à 04:22:55