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

  FORUM HardWare.fr
  Programmation
  Java

  [Java]Multi Thread Conseil !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java]Multi Thread Conseil !!

n°245829
KrzAramis
Help Me
Posté le 15-11-2002 à 12:32:20  profilanswer
 

:hello:  
Bonjour a tous. C est l heure de post Java du Vendredi  :whistle:
Voila mon ptit probleme. Comme vous l avez surment vu la semaine derniere j ai poste un message sur CLient/Server en Java. Ca ne marchait pas pour la raison bete que je n avais pas capte qu il fallait un "\n" pour valider mes messages.  :(  
Et comme vous vous en doutez ce client/server etait 1 server pour 1 client !  :sweat:  
Et comme c est un projet scolaire  :fou: le but est de nous faire comprendre que faire 1 Server pour un client c est pas super interessant diront nous !  :p  
Donc l etape suivante est de faire un server pour N clients.  :ouch:  
Et quel dommage moi pas etre un dieux en java !  :pt1cable:  
donc moi demander de l aide a vous !  :jap:  
Je sais que je vais de voir utiliser des "threads" mais je ne sais pas comment ca marche.
Avez vous des conseils adaptes a l application que je developpe ?  :??:  
Avez vous besoin du code pour pouvoir m aider au mieux?  :??:  
Est ce si difficile de faire un multi thread en java a bas niveau?  :??:  
 
Merci bcp !  :jap:


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
mood
Publicité
Posté le 15-11-2002 à 12:32:20  profilanswer
 

n°245830
lorill
Posté le 15-11-2002 à 12:34:09  profilanswer
 

KrzAramis a écrit a écrit :

 
:hello: :whistle: :( :sweat: :fou: :p :ouch: :jap: :??: :??: :??: :jap:  




 
j'ai pas pu m'en empecher


Message édité par lorill le 15-11-2002 à 12:34:37
n°245834
bartleby
Posté le 15-11-2002 à 12:40:05  profilanswer
 

Wow toi tu aimes les smileys......
 
Je te conseille d'ecrire la procedure de traitement d'une client dans une classe etendant la classe thread.
 
Tu dois surcharger la methode void run() ( grosso modo c'est cette methode qui sera lancé quand tu demarreras ta thread.
 
Ta classe prendra un socket en parametre.
 
Voila comment ca se passe :
 
Ton serverSocket attend l'arrivé d'un client ( method accept() ), avec le socket recupéré tu instanties ta classe contenant la methode run:
 
Voila a quoi ca ressemble....
 

Code :
  1. SocketServer x = new SocketServer(PORT);
  2. Socket incomingClient ;
  3. while (true){
  4. incomingClient=x.accept();
  5. TaClasse clientProccesing = new TaClasse(incomingClient);
  6. clientProccesing.start();
  7. }


 
A chaque nouveau client tu demarreras comme cela une nouvelle thread, traitement seulement avec le client. Une fois terminé, ta thread sera recupere par le garbage collector.


Message édité par bartleby le 15-11-2002 à 12:41:23
n°245836
bartleby
Posté le 15-11-2002 à 12:40:56  profilanswer
 

Citation :

j'ai pas pu m'en empecher


 
Moi si :D !

n°245838
lorill
Posté le 15-11-2002 à 12:44:06  profilanswer
 

bartleby a écrit a écrit :

Wow toi tu aimes les smileys......



 
pas entierement !

n°245840
KrzAramis
Help Me
Posté le 15-11-2002 à 12:48:16  profilanswer
 

Merci.
Une chose encore mon client/server simule en fait un echange de donner (catalogue).
Maintenant il est fort possible que deux clients accedent a ce catalogue en meme temps et le modifie !
Certes je sais qu il a une foncion qui permet de proteger les donnees communes lorsque l on fait des threads.
Mais le deuxieme client il se fait jetter ? ou il est juste "retenu" pendant un temps ?
 
Merci
 
PS: en attendant je vais eesayer d modifier mon code pour les thread.
PS2: oui j aime les smiley en particulier dans le premier message c est pour moi un moyen d en dire plus a mes lecteurs.
Mais si vous voulez la prochaine fois je le fait en noir et blanc bien baveux !  :kaola:


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°245845
lorill
Posté le 15-11-2002 à 12:54:43  profilanswer
 

KrzAramis a écrit a écrit :

 
Mais le deuxieme client il se fait jetter ? ou il est juste "retenu" pendant un temps ?




 
juste retenu.
 
PS: le noir et blanc, c'est bien !

n°245855
KrzAramis
Help Me
Posté le 15-11-2002 à 13:13:22  profilanswer
 

hum je comprends pas tout dans pour les thread. (je suis en train de lire l aide de borland).
 Par quoi je commence ma classe?


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°245860
KrzAramis
Help Me
Posté le 15-11-2002 à 13:24:44  profilanswer
 

:cry:


Message édité par KrzAramis le 15-11-2002 à 13:44:54

---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°245868
darklord
You're welcome
Posté le 15-11-2002 à 13:41:05  profilanswer
 

:ouch:  :ouch:  :ouch:  :pfff:  
 
 
 :pt1cable:  [:necris]  [:seyar]


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le 15-11-2002 à 13:41:05  profilanswer
 

n°246172
--greg--
Posté le 15-11-2002 à 18:01:12  profilanswer
 

KrzAramis a écrit a écrit :

hum je comprends pas tout dans pour les thread. (je suis en train de lire l aide de borland).
 Par quoi je commence ma classe?  



tu commences par lire AUTRE CHOSE que les trucs de borland :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°246531
darklord
You're welcome
Posté le 16-11-2002 à 16:15:47  profilanswer
 

--greg-- a écrit a écrit :

tu commences par lire AUTRE CHOSE que les trucs de borland :o




 
[:ddr555]


---------------
Just because you feel good does not make you right
n°246844
bartleby
Posté le 16-11-2002 à 22:32:47  profilanswer
 

Citation :

Maintenant il est fort possible que deux clients accedent a ce catalogue en meme temps et le modifie !


 
Bon, a ce moment là, ce que je te conseille c'est de créer un object dedicacé a la gestion de ton catalogue.
 
Celui-ci aura des methodes classiques en ce qui concerne la consultation, mais ses methodes de modifications seront "synchronized".
 
C'est a dire qu'il ne rendra ce service que pour un seul objet a la fois. Ca te garantira une coherence des données, c'est une methode couramment utilisé pour gere le multi-threading...

n°247699
KrzAramis
Help Me
Posté le 18-11-2002 à 15:34:30  profilanswer
 

desole les gars j ai du rentrer chez moi en vitesse. Donc j ai malheureusement lu l aide de boralnd. Et paf!!! j ai pas compris ! :cry:
 
Pire j arrive pas a commencer ma classe !
J ai dans l idee de faire ca:

Code :
  1. class Multiserver
  2. {
  3.       /* Variable accessible dans toute la classe */
  4.       blabla
  5.      
  6.       public static void main(String[]args) throws IOException
  7.       {
  8.         ServerSocket sock = new ServerSocket(1111);
  9.         while(true)
  10.         {
  11.          
  12.           Socket sock1 = sock.accept();
  13.           new MaConnexion(sock1);
  14.         }
  15.       }
  16.       public MaConnexion(Socket client) extends Runnable
  17.       {
  18.        lancer mon thread ici ?
  19.        .......
  20.       }
  21.       public void run()
  22.       {
  23.           /* ce que doit fqire mon server */
  24.       }
  25.       public void stop()
  26.       {
  27.           /* fermer les connexions ! */
  28.       }
  29. }


 
Alors j ai juste ?


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°247737
darklord
You're welcome
Posté le 18-11-2002 à 16:13:02  profilanswer
 

vu ton code y a pas que les threads que t'as pas compris ... Une méthode qui implémente une interface c'est assez comique ...
 
retourne à la case http://penserenjava.free.Fr


---------------
Just because you feel good does not make you right
n°247744
KrzAramis
Help Me
Posté le 18-11-2002 à 16:20:18  profilanswer
 

Citation :

vu ton code y a pas que les threads que t'as pas compris ... Une méthode qui implémente une interface c'est assez comique ...


 :sweat:  
 
J adore lire ce genre de commentaire ca fait tjrs plaisir !  :(  
Enfin ca a le merite d etre direct.
Ma formation en Java est loin d etre terminee et qui plus est comme tu l as ecris recement la programmation Client/server c est pas pour tout le monde! je suis le premier a ere d accord avec toi seulement le PROF lui a dit que c etait possible meme sans jamais avoir fait de Java dans la vie. Alors je fais !
J ai pas vraiement le choix!
 
Je vais suivre ton lien qd meme ! :lol:
 
merci !
 
PS: le prof il ne touche pas une bille en Java !  :sweat:


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°247748
darklord
You're welcome
Posté le 18-11-2002 à 16:24:10  profilanswer
 

oui ma réponse était un peu sèche et je m'en excuse ... Cela dit, essaie peut etre de prendre du temps pour étudier les bases. Ca te servira toujours d'une manière ou d'une autre. Et c'est bien plus intelligent que de farfouiller dans du code en espérant que ca compile ...
 
A+


---------------
Just because you feel good does not make you right
n°247771
KrzAramis
Help Me
Posté le 18-11-2002 à 16:35:36  profilanswer
 

ben pour les bases... je me suis tape tout le bookin appelle CO72003 java Software Development part 01 de Stuart Mathiesson Napier School of Computing.
C est environ 100 pages d expliquations avec exos (deux niveaux: newbie et pas trop newbie). J arrive a faire, comprendre, commenter et meme customizer les programmes.
mais meme dans la partie 02 (centree sur la POO) le "multi threading" n y est pas aborde.
Je suis en train de lire qq articles sur le lien que tu m a file. Je comprends facilement les concepts. Cependant il doit encore manque qqc.
Ensuite, j ai deja un programme Cleint/Server qui marche pour un seul client et qui marche tres bien (selon le prof. moi j ai un peu honte car y a endroit qui m a pris la tete et j ai ecris le code comme un cochon ! mais bon le prof est heureux !).
Ce qui m interrese c est d apprendre et comprendre la methode qui me permettra de "traduire" mon code en multi thread.
 
j espere avoir ete concis.


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°247777
benou
Posté le 18-11-2002 à 16:37:54  profilanswer
 

ben visiblement t'as pas encore bien saisi les bases sinon tu n'écrirais pas de méthode qui étend une interface ...
 
donc, une petite révision te ferras du bien et thinkinginjava (version original du lien que t'as filé dark) et TRES bien !

n°247786
KrzAramis
Help Me
Posté le 18-11-2002 à 16:40:50  profilanswer
 

Humm je suis sur que le terme "interface" n a jamais ete traite dans le bookin en question !  :heink:  
 
dommage! ca m aurai evite d ecrire des betises !


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°247792
benou
Posté le 18-11-2002 à 16:47:00  profilanswer
 

KrzAramis a écrit a écrit :

Humm je suis sur que le terme "interface" n a jamais ete traite dans le bookin en question !  :heink:  




 :ouch:  :heink:  
 
cours vers http://penseenjava.free.fr alors !

n°247806
KrzAramis
Help Me
Posté le 18-11-2002 à 16:55:35  profilanswer
 

Pourquoi es tu surpris benou ? la part 1 traite seulement de Java en mode console!
 
ne t inquiete pas je lis je lis.


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°247808
lorill
Posté le 18-11-2002 à 16:58:31  profilanswer
 

KrzAramis a écrit a écrit :

Pourquoi es tu surpris benou ? la part 1 traite seulement de Java en mode console!
 
ne t inquiete pas je lis je lis.




 
interface != interface graphique :ouch:

n°247809
--greg--
Posté le 18-11-2002 à 16:58:51  profilanswer
 

lorill a écrit a écrit :

 
 
interface != interface graphique :ouch:



ben y peut pas savoir :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°247812
lorill
Posté le 18-11-2002 à 17:00:41  profilanswer
 

--greg-- a écrit a écrit :

ben y peut pas savoir :o




ben maintenant il sait :o

n°247814
benou
Posté le 18-11-2002 à 17:01:33  profilanswer
 

KrzAramis a écrit a écrit :

Pourquoi es tu surpris benou ? la part 1 traite seulement de Java en mode console!




parce que savoir ce qu'est une interface ca fait vraiment partit des bases. Alors qu'un bouquin de Java n'en parle pas, ca me surprend VRAIMENT bcp.
Si c'est le cas, faut le bruler !

n°247816
KrzAramis
Help Me
Posté le 18-11-2002 à 17:02:36  profilanswer
 

J hesite sincerement entre "merci" et "f#%&**8#@'" mais bon.
Juste que la le truck client server en version sequentiel n a ete qu une formalite et je n ai pas 107 ans pour comprendre/appliquer ce "multi thread"....  :pt1cable:


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
n°247822
benou
Posté le 18-11-2002 à 17:15:50  profilanswer
 

si t'as pas le temps, tu trouveras des milliers d'exemple de ce que tu essayes de faire sur le net

n°247824
bartleby
Posté le 18-11-2002 à 17:25:58  profilanswer
 

Citation :

Si c'est le cas, faut le bruler !


 
N"hesite pas a danser autour du feu en poussant des petits cris....
 
Franchement zarb ton livre qui parle pas des interfaces en  100 pages....


Message édité par bartleby le 18-11-2002 à 23:20:50
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java]Multi Thread Conseil !!

 

Sujets relatifs
[Java] Ecriture/Lecture fichier.[RESOLU]cherche applet java ...
[java] compilation javacListe Chainée en java | Gérer le resize [Resolu]
Chat en java, PB socket sur wanadoo ?java-nombre de lignes d un fichier texte
[C++ & Java] Quel programme simple et efficace pour développer ?[Java 1.1] drawOval --> cercles tout moches sous Win
Accès port série avec Java[JAVA] Je voudrais faire un chat en P2P mais je sais pas comment faire
Plus de sujets relatifs à : [Java]Multi Thread Conseil !!


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