IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Concurrence et multi-thread Java Discussion :

Aide à la construction d'un Thread


Sujet :

Concurrence et multi-thread Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Aide à la construction d'un Thread
    Bonjour à tous,

    je fais mes débuts en java, et je dois vous avouer que tout est encore très/trop flou. J'espère simplement que ma question ne sera pas trop "conne"

    J'ai une class room qui contient la liste des membres qui sont dedand.
    Elle doit toutes les 50ms lancer une série de calcul que je ne détaillerais pas vu que c'est avant que je bloque xD
    En fait, j'ai beau utiliser un Thread, je n'arrive pas à me servir de la methode sleep, j'ai un soucis de "static".

    Voici ma class Room :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import java.io.PrintWriter;
    import java.util.*;
     
    public class Room implements Runnable{
     
    	//attributs
    	private Vector listmembre;
    	private int nbclient;
    	private Thread t;
     
    	//constructeur
    	public Room(){
    		this.listmembre= new Vector();
    		this.nbclient=0;
    		this.t=new Thread(this);
    		this.t.start();
    	}
    	public void run(){
    		while(listmembre.size()>0){
    		System.out.println("test");
    		 t.sleep(50);
    		}
    	}
     
    }
    L'erreur :
    The static method sleep(long) from the type Thread should be accessed in a static way.

    J'ai du mal à saisir le truc. Il me semblait que ce qui était static n'était pas lié a un objet en fait. Or je souhaite que cela soit le cas. Car j'aurais plusieurs objet de type Room, et je veux une instance de calcul toutes les 50ms pour chaque.

    Il y a quelque chose que j'ai du louper, que je dois mal comprendre.

  2. #2
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Citation Envoyé par Myrtill Voir le message
    Bonjour à tous,

    En fait, j'ai beau utiliser un Thread, je n'arrive pas à me servir de la methode sleep, j'ai un soucis de "static".

    Voici ma class Room :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import java.io.PrintWriter;
    import java.util.*;
    
    public class Room implements Runnable{
    	
    	//attributs
    	private Vector listmembre;
    	private int nbclient;
    	private Thread t;
    	
    	//constructeur
    	public Room(){
    		this.listmembre= new Vector();
    		this.nbclient=0;
    		this.t=new Thread(this);
    		this.t.start();
    	}
    	public void run(){
    		while(listmembre.size()>0){
    		System.out.println("test");
    		 t.sleep(50);
    		}
    	}
    	
    }
    L'erreur :
    The static method sleep(long) from the type Thread should be accessed in a static way.
    essais private static Thread t;

  3. #3
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Cela te dit que la méthode sleep (static) doit être appelé d'une manière static (en faisant référence à la classe) :
    alors que tu l'appelle par ton objet (instance de la classe) :

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Ok je viens de piger C'était bien Thread.sleep(50);
    Merci visiwi.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Points : 199
    Points
    199
    Par défaut
    Je dis peut être une bêtise, mais Thread.sleep() bloque le thread en cours d'exécution. Dans ton cas, il y aurait donc le thread "t" qui serait bloqué (ce que apparement tu cherche), mais peut être pas les autres (s'il y en a).
    Je pense (si je ne me trompe pas) que c'est une remarque utile si tu gère d'autres thread au moment où le thread "t" est en cours d'exécution.

    A confirmer quand même ^^
    Pensez au tag quand votre problème est réglé !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide à la construction de ma requête
    Par Gregouze1986 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/05/2012, 10h02
  2. Aide pour construction de table MySql
    Par BobaL dans le forum Débuter
    Réponses: 0
    Dernier message: 18/11/2009, 11h35
  3. Besoin d'aide concernant l'utilisation de thread
    Par romain69 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/03/2008, 17h21
  4. Réponses: 1
    Dernier message: 22/03/2006, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo