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

  FORUM HardWare.fr
  Programmation

  [JAVA] Probleme bizarre avec des threads

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] Probleme bizarre avec des threads

n°23245
AirBg
The Philosopher
Posté le 09-04-2001 à 11:46:44  profilanswer
 

Voila j'ai créé une classe qui hérite de Thread et qui fait diffférents traitements.
 
Dans une autre classe j'ai comme attributs un tableau de cette classe :
 
MonThread []tabthread;
 
et un déclaré seul
 
MonThread th;
 
le tableau c'est pour pouvoir en lancer plusieurs en parallèle (9 exactement)
une fois ces 9 threads morts, quand je veux faire un start() du thread unique (th.start()) il se lance 9 fois !!!!
 
Qui pourrait m'aider pour ca ? je comprends pas !  
C'est extremement urgent en +
Merci d'avance !


---------------
"There's not such a thing as a stupid question, only stupid people..."
mood
Publicité
Posté le 09-04-2001 à 11:46:44  profilanswer
 

n°23269
zop
1 world, 1 web, 1 Windows
Posté le 09-04-2001 à 12:54:03  profilanswer
 

Y'a peut-être une boucle qui traîne ...
 
Ce serait certainement plus facile si on pouvait voir le code

n°23273
AirBg
The Philosopher
Posté le 09-04-2001 à 13:01:52  profilanswer
 

Non , aucune boucle, cela réagit a partir de listener(clic sur un bouton)
 
voici un bout de code :
 
public void actionPerformed(ActionEvent ev) {
 
 
                if (ev.getActionCommand().equals("Display" )
                {
                        _progress_bar = 0;
                        repaint();
                        ta.append("Please wait...\n" );
       
                        _cgi = new CGI("http://15.129.22.198/cgi-bin/conf-rcons.sh", ta, this, false, 0);
                        _cgi.start();
                        _progress_bar = 618;
                        repaint();
                 }
                else if (ev.getActionCommand().equals("Ping" )
                {
                        _progress_bar = 0;
                        repaint();
               
                        _cgi = new CGI("http://15.129.22.198/cgi-bin/tftp.sh", ta, this, false, 0);
                        _cgi.start();
                        _progress_bar = 618;
                        repaint();
                }
 
 
                else if (ev.getActionCommand().equals("Load" ))
                {
                        _progress_bar = 0;
                        repaint();
                        loadTemp();
                }
        }
 
ensuite dans la fct° loadTemp j'utilise mon tableau
 
 ta.append("Loading configuration into R1 Router...\n" );
                _cgis[0] = new CGI("http://15.129.22.198/cgi-bin/conf.sh?15.129.22.201+template-r1-confg+R1", ta, this, true, 1);
                _cgis[0].start();
 
                ta.append("Loading configuration into R2 Router...\n" );
                _cgis[1] = new CGI("http://15.129.22.198/cgi-bin/conf.sh?15.129.22.202+template-r2-confg+R2", ta, this, true, 2);
                _cgis[1].start();
 
                ta.append("Loading configuration into R3 Router ...\n" );
                _cgis[2] = new CGI("http://15.129.22.198/cgi-bin/conf.sh?15.129.22.203+template-r3-confg+R3", ta, this, true, 3);
                _cgis[2].start();
 
                ta.append("Loading configuration into R4 Router...\n" );
                _cgis[3] = new CGI("http://15.129.22.198/cgi-bin/conf.sh?15.129.22.204+template-r4-confg+R4", ta, this, true, 4);
                _cgis[3].start();
 
 
(je mets pas tout car ca se ressemble) ...
j'espere que c pas trop ambigu)


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23294
bat
Posté le 09-04-2001 à 13:56:22  profilanswer
 

Je pige pas bien ce qui va pas ...
Il faudrait des explications supplémentaires sur ce qui ce passe, un exemple sur le comportement du code genre :
- appel de la fonction truc, il se passe ...  
- appel de ..., il se passe  ...
- etc ...
 
Essaye d'être le plus precis possible, car sans le code complet, c'est dur de voir ce qui va pas.

n°23297
AirBg
The Philosopher
Posté le 09-04-2001 à 14:02:10  profilanswer
 

Bon :
 
- clic sur le bouton "Display" appel de la méthode actionPerformed qui crée un Thread CGI.
Cd trhead CGI appelle dans sa fonction run une méthode executeCGI qui utilse une URLCOnnection pour executer un script.
 
- clic sur le bouton "Load" appel de actionPerformed qui lui appelle alors loadTemp()
dans loadTemp() se créeent 9 Thread CGI lancés les uns a la suite des autres (quasi parallelement). Ca c okk
 
- mais quand je reclique sur "Display" il est sensé faire la meme chose qu'au début mais en fait il le fait neuf fois !
Comme si il lançcait 9 thread !  
 
Merci , j'espere plus clair :)


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23298
AirBg
The Philosopher
Posté le 09-04-2001 à 14:02:33  profilanswer
 

Bon :
 
- clic sur le bouton "Display" appel de la méthode actionPerformed qui crée un Thread CGI.
Cd trhead CGI appelle dans sa fonction run une méthode executeCGI qui utilse une URLCOnnection pour executer un script.
 
- clic sur le bouton "Load" appel de actionPerformed qui lui appelle alors loadTemp()
dans loadTemp() se créeent 9 Thread CGI lancés les uns a la suite des autres (quasi parallelement). Ca c okk
 
- mais quand je reclique sur "Display" il est sensé faire la meme chose qu'au début mais en fait il le fait neuf fois !
Comme si il lançcait 9 thread !  
 
Merci , j'espere plus clair :)


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23301
bat
Posté le 09-04-2001 à 14:10:04  profilanswer
 

Est ce qu'il y a des membres statiques dans ta classe CGI ?
A quoi servent les deux derniers parametres du constructeur de la classe CGI ?
Si tu appelles plusieurs fois de suite "Display", ca marche correctement ?
 
Il m'a l'air retorse ton pb ...  :crazy:

n°23302
AirBg
The Philosopher
Posté le 09-04-2001 à 14:14:43  profilanswer
 

LEs 2 deux derniers parametres ne sont pas importants et n'interviennent pas.
mais il n'y a pas non plus de fonction/attribut statiques...
 
si je clique plusieurs fois de suite sur Display en premier, aucun probleme ... je capte rien pourtant les threads c pas dur !


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23306
bat
Posté le 09-04-2001 à 14:28:52  profilanswer
 

Et le 2eme appel à "Display", il exécute 9 fois la meme chose ?
Soit ton pb est à une solution conne (assez classique en prog) et super évidente, que je ne vois pas, soit ca ne vient pas des threads mais de ta classe CGI, avec un pb du style limite du nb de connexions ou je sais pas quoi d'autre ...
Je te conseille de rajouter des println() partout pour tracer au maximum ce qui se passe.
Autre idée, au lieu de dériver de la classe Thread, dérive ta classe de l'interface Runnable, il suffit d'implémenter la méthode run() et ca roule ...
Enfin, fait bien gaffe à tes objets et aux réfences qu'il y dessus, pour ne pas appeler le mauvais objet au mauvais moment.

n°23333
AirBg
The Philosopher
Posté le 09-04-2001 à 14:58:57  profilanswer
 

Ok je vais essayer ca,  
merci de ton aide bat


---------------
"There's not such a thing as a stupid question, only stupid people..."
mood
Publicité
Posté le 09-04-2001 à 14:58:57  profilanswer
 

n°23585
AirBg
The Philosopher
Posté le 10-04-2001 à 11:42:41  profilanswer
 

Et bien non j'ai fait pas mal de corrections et cette fois cela ne se lance pas 9 fois mais 2 ... ce n'est à plus rien y comprendre !!! Threads  :gun:


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23647
AirBg
The Philosopher
Posté le 10-04-2001 à 14:40:21  profilanswer
 

Un petit up je suis vraiment trop dans la m...  :fou:  :crazy:


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23690
AirBg
The Philosopher
Posté le 10-04-2001 à 15:45:32  profilanswer
 

Dernier up puis j'abandonne...


---------------
"There's not such a thing as a stupid question, only stupid people..."
n°23771
AirBg
The Philosopher
Posté le 10-04-2001 à 17:19:02  profilanswer
 

Modérateurs, virez moi ce topic svp, il n'est pas résolvable...


---------------
"There's not such a thing as a stupid question, only stupid people..."

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

  [JAVA] Probleme bizarre avec des threads

 

Sujets relatifs
[java]comment faire des envois de mails[VB] Probleme d'actualisation de combo box
[ACCESS 2000] probléme de connection avec Outlook[java-script] une liste dréroulante qui dépend d'une autre ....
Probleme chelou dans acces 97p'tit problème Sql
[JAVA] deprecation????[Java] Enorme probleme Applet
Plus de sujets relatifs à : [JAVA] Probleme bizarre avec des threads


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