Bonjour,
j'ai une classe "ExecuteSNMP" qui permet de générer un répertoire contenant 6 fichiers textes.
j'ai une deuxième classe "ConcatFile" qui prend ces 6 fichiers, les concatène en un seul et charge ce dernier dans une Table SQL.
mes deux classes heritent des Thread.
et j'ai une troisième classe "TEST" qui instancie mes deux classes précédentes. TEST n'Herite pas de Thread.
Jusqu'à présent pour empêcher que la concaténation ne soit lancée avant la générations des 6 fichiers j'uitlise la commande wait(3000) de cette manière:
tout allait très bien jusqu'à ce que j'ai voulu la classe "TEST" dans une autre classe. J'ai remarqué alors que la génération et la concaténation du fichier pouvait ce chevaucher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ExecuteSnmp execute=new ExecuteSnmp(this, oids, files, dir,sh); execute.start(); syncronized(this){this.wait(3000);} ConcatFile c=new ConcatFile (this,dir,scripts,sh); c.start();
j'ai alors remplacer l'instruction wait(3000) par ce bout de code. Mais ça ne résout pas mon problème.
comment résoudre ce problème sans passer par une synchronisation du répertoire (je essayé de le faire mais je n'y arrive pas c'est extremement difficile je trouve).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 while (condition==false) { if (dir.list().length==6) // dir est le répertoire contenant les 6 fichiers { condition=true; } else if (dir.list().length<6) { condition=false; } }
merci
Partager