Multi Thread

Multi Thread - Java - Programmation

Marsh Posté le 18-05-2009 à 21:29:44    

Bonjour,
 
Voila j'ai un petit probleme de thread !!!
 

Code :
  1. public class client
  2. {
  3. public static void main (String [] args)
  4. {
  5.  // Nom du fichier à envoyer :
  6.  String nom_fichier_1 = "mp3.mp3" ;
  7.  // Nom du fichier à envoyer :
  8.  String nom_fichier_2 = "flv.flv" ;
  9.  Protocole proto = new Protocole(nom_fichier_1);
  10.  Protocole proto2 = new Protocole(nom_fichier_2);
  11.  // Client 1 :
  12.  String messageInit = "has__file 55000'" + nom_fichier_1 + "'";
  13.  byte[] tableauInit;
  14.  tableauInit = messageInit.getBytes();
  15.  String messageInit2 = "has__file 54000'" + nom_fichier_2 + "'";
  16.  byte[] tableauInit2 = tableauInit2 = messageInit2.getBytes();
  17.  EmetteurClient envoi_client_1 = new EmetteurClient("localhost", "51000", proto, tableauInit, nom_fichier_1) ;
  18.  envoi_client_1.start() ;
  19.  RecepteurClient recept_client_1 = new RecepteurClient("55000", proto);
  20.  recept_client_1.start() ;
  21.  EmetteurClient envoi_client_2 = new EmetteurClient("localhost", "51000", proto2, tableauInit2, nom_fichier_2) ;
  22.  envoi_client_2.start() ;
  23.  RecepteurClient recept_client_2 = new RecepteurClient("54000", proto2);
  24.  recept_client_2.start() ;
  25.  System.out.println("alors !!!!" );
  26. }
  27. }


 
 
Mais le probleme c que le envoi_client_1.start()  est bien lancé, quand il se fini le recept_client_1.start() mais les deux autres ne se lance pas car le recept_client_1 ne se termine pas (c normal ça) !!!
 
En gros le lancement des threads se fait en sequence (des qu'un est fini l'autre est lancé) mais je voudrais qu'ls sois tous lancé en simultané !!!
 
Merci d'avance

Reply

Marsh Posté le 18-05-2009 à 21:29:44   

Reply

Marsh Posté le 19-05-2009 à 08:18:15    

Si EmetteurClient implémente bien Runnable ou dérive de Thread alors normalement ils devraient tous s'exécuter en parallèle.

 

Et autre chose : les noms de classe en Java doivent commencer par une majuscule !


Message édité par Deamon le 19-05-2009 à 08:33:28
Reply

Marsh Posté le 19-05-2009 à 09:17:23    

Oui EmetteurClient et RecepteurClient sont bien dérivé de Thread !!!
 
Le problème c'est que j'ai l'impression qu'ils ne se lance pas en parallèle car par exemple l'affichage du alors ne marche pas !!!!
 
Merci d'avance

Reply

Marsh Posté le 19-05-2009 à 09:20:00    

J'ai le meme probleme avec mes serveurs !!!

Code :
  1. public class serveur
  2. {
  3. public static void main (String [] args)
  4. {
  5.  // Serveur 1:
  6.  RecepteurServeur recept_serveur_1 = new RecepteurServeur("51000", new Protocole()) ;
  7.  recept_serveur_1.start() ;
  8.  // Serveur 2:
  9.  RecepteurServeur recept_serveur_2 = new RecepteurServeur("52000", new Protocole()) ;
  10.  recept_serveur_2.start() ;
  11. }
  12. }


 
Le deuxième serveur ne se lance pas !!! Je sais pas pourquoi...
 
Merci d'avance


Message édité par lezert le 19-05-2009 à 09:20:18
Reply

Marsh Posté le 19-05-2009 à 09:23:53    

Dans EmetteurClient et RecepteurClient tu as surchargé quelle méthode de Thread ? C'est seulement la méthode run() qu'il faut redéfinir.

Reply

Sujets relatifs:

Leave a Replay

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