Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1177 connectés 

 


Dernière réponse
Sujet : [java] question sur les threads
veryfree

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:


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
veryfree

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:

Cherrytree Et ta classe ConnexionTD étend Thread aussi, c'est ça ?
Ma foi rien ne me choque trop.
veryfree
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. }

schnapsmann

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:

veryfree

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...

schnapsmann

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]

veryfree

SchnapsMann a écrit a écrit :

c'est quoi ces questions?  :??:  




 
 :cry:

Cherrytree

SchnapsMann a écrit a écrit :

c'est quoi ces questions?  :??:  



Mais enfin.

schnapsmann c'est quoi ces questions?  :??:
Cherrytree Non, enfin, il me semble.
veryfree est ce que c mal de faire des methodes setXxx et getXxx dans un thread?

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR