[java] question sur les threads

question sur les threads [java] - Programmation

Marsh Posté le 17-07-2002 à 23:13:41    

est ce que c mal de faire des methodes setXxx et getXxx dans un thread?


Message édité par veryfree le 17-07-2002 à 23:15:39
Reply

Marsh Posté le 17-07-2002 à 23:13:41   

Reply

Marsh Posté le 17-07-2002 à 23:57:25    

Non, enfin, il me semble.


---------------
Le site de ma maman
Reply

Marsh Posté le 18-07-2002 à 00:00:34    

c'est quoi ces questions?  :??:


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-07-2002 à 00:08:04    

SchnapsMann a écrit a écrit :

c'est quoi ces questions?  :??:  



Mais enfin.


---------------
Le site de ma maman
Reply

Marsh Posté le 18-07-2002 à 00:09:09    

SchnapsMann a écrit a écrit :

c'est quoi ces questions?  :??:  




 
 :cry:

Reply

Marsh Posté le 18-07-2002 à 00:13:43    

veryfree a écrit a écrit :

est ce que c mal de faire des methodes setXxx et getXxx dans un thread?




 :heink:  
 
si tu racontais un peu le contexte?  
parce que la poser cette question comme ca sans autre indication ou brasser du vide c'est pareil [:svone]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-07-2002 à 00:18:07    

SchnapsMann a écrit a écrit :

 
 :heink:  
 
si tu racontais un peu le contexte?  
parce que la poser cette question comme ca sans autre indication ou brasser du vide c'est pareil [:svone]  




 
ben en fait j ai un thread, ds ce thread, un vecteur est modifié
 
j aimerai accedé a ce vecteur a partir d un autre thread qui tourne en paralele...
2 solutions:
 
monThread.monVecteur c pas propre du tout
 
ou je fait getConnexionVector()
 
d ou ma question...


Message édité par veryfree le 18-07-2002 à 00:18:41
Reply

Marsh Posté le 18-07-2002 à 00:26:28    

veryfree a écrit a écrit :

 
 
ben en fait j ai un thread, ds ce thread, un vecteur est modifié
 
j aimerai accedé a ce vecteur a partir d un autre thread qui tourne en paralele...
2 solutions:
 
monThread.monVecteur c pas propre du tout
 
ou je fait getConnexionVector()
 
d ou ma question...




 
tu code une classe Runnable contenant un champ Vector, du style
 

Code :
  1. public class Conteneur implements Runnable
  2. {
  3.    Vector pipo;
  4.  
  5.    Conteneur(Vector _vector) { pipo = _vector;}
  6.    void run()
  7.    {
  8.       ...
  9.    }
  10. }


 
ensuite dans ton main, tu crée un unique vecteur, et tu le files a deux instances differentes de la classe Conteneur, disons c1 et c2.
 
Ensuite tu crée deux Thread differentes avec chacune des deux instances Conteneur: t1 avec c1, et t2 avec c2.
 
puis tu lances tes t1 et t2 avec la methode start et c'est parti a toi les joies de la gestion des acces concurents :cry:


Message édité par schnapsmann le 18-07-2002 à 00:28:14

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-07-2002 à 00:40:21    


ce que j ai du oublier de dire c'est que mes deux threads (ceux qui tournent en paralele sont different :/ )
 
le premier appel le deuxieme en fait:
 
je met juste le serveur de l appli
 

Code :
  1. import java.io.*;
  2. import java.net.*;
  3. import java.util.*;
  4. public class ServeurTD extends Thread {
  5.     private  ServerSocket ecoute;
  6.     protected  Vector connexions;
  7.     private  Nettoyeur nettoyeur;
  8.    
  9.    
  10.   public ServeurTD (int port)
  11.    {
  12.  
  13.     try
  14.        {
  15.      
  16.          ecoute=new ServerSocket(port);
  17.      
  18.      
  19.        }
  20.        catch (IOException e)
  21.        {
  22.      
  23.          System.err.println(e.getMessage());
  24.    System.exit(1);
  25.        }
  26.      
  27.      System.out.println("Serveur en ecoute sur le port :"+port);
  28.      connexions=new Vector();
  29.      nettoyeur=new Nettoyeur(this);
  30.      this.start();
  31.    }
  32.   public void run()
  33.    {
  34.  
  35.       try
  36.       {
  37.      
  38.        while (true)
  39.     {
  40.      Socket client=ecoute.accept();
  41.      System.out.println("Demande de connexion..." );
  42.      ConnexionTD c= new ConnexionTD(client,nettoyeur,this); //  2em thread ici
  43.      synchronized (connexions)
  44.       {
  45.        connexions.addElement(c);
  46.       }
  47.     }
  48.   }
  49.      catch (IOException e)
  50.        {
  51.       
  52.          System.err.println(e.getMessage());
  53.       System.exit(1);
  54.     
  55.        }
  56.    }
  57.  
  58.  protected Vector getConnection()
  59.  {
  60.   return connexions;
  61.  }
  62.  protected void setConnection(Vector v)
  63.  {
  64.   this.connexions=v;
  65.  }
  66.   public static void main(String[] args)
  67.   {
  68.  
  69.     new ServeurTD(13267);
  70.  
  71.   }
  72.  
  73. }


Message édité par veryfree le 18-07-2002 à 00:44:57
Reply

Marsh Posté le 18-07-2002 à 08:26:45    

Et ta classe ConnexionTD étend Thread aussi, c'est ça ?
Ma foi rien ne me choque trop.


---------------
Le site de ma maman
Reply

Marsh Posté le 18-07-2002 à 08:26:45   

Reply

Marsh Posté le 18-07-2002 à 22:04:42    

Cherrytree a écrit a écrit :

Et ta classe ConnexionTD étend Thread aussi, c'est ça ?
Ma foi rien ne me choque trop.




 
oui c bien un thread, de toute facon ca marche tres bien comme c'est jvai pas le changer...
 
 :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed