Bonjour à tous,
comment faire en java pour n'exécuter une commande que si la précédente à était terminée??
Merci
Bonjour à tous,
comment faire en java pour n'exécuter une commande que si la précédente à était terminée??
Merci
Bonjour,
Pourrais-tu être plus explicite ?
Mes liens: Profil | Blog
Mes articles Java : JSF 2.0 | NetBeans 6.9/OSGi
Mes articles Webmarketing : Apprenez à mixer, filtrer, différentes sources de flux (RSS,...)
Vidéos pour les membres :
James Gosling - Créateur du langage Java
Chris Melissinos - Chef Evangéliste
Réseaux sociaux: Twitter Webmarketing | Facebook Webmarketing
Le seul cas possible ou une commande peut être effectué alors qu'une autre n'est pas terminé est lorsqu'elles sont sur différents thread.
Si tu as le thread T1 qui fait la commande A, le thread T2 qui fait la commande B, et que tu veux que B soit exécutée avant A, tu dois effectuer l'instruction T2.join() dans ton thread 1 juste avant d'exécuter 1.
Ce que tu peux faire, s'est setter une priorité à tes threads et à les exécuter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 threadA.setPriority(2); threadB.setPriority(5); threadB.start(); threadA.start();
Mes liens: Profil | Blog
Mes articles Java : JSF 2.0 | NetBeans 6.9/OSGi
Mes articles Webmarketing : Apprenez à mixer, filtrer, différentes sources de flux (RSS,...)
Vidéos pour les membres :
James Gosling - Créateur du langage Java
Chris Melissinos - Chef Evangéliste
Réseaux sociaux: Twitter Webmarketing | Facebook Webmarketing
pour mes reecherches de fonctionalités, j'ai trouvé un truc dans ce gout là:
Mes bat sont super cours alors je ne peux jurer de rien mais j'ai l'impression que cmd2 se lance quand cmd est fini.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 String cmd; cmd = "C:\\fichier.bat"; cmd2 = "C:\\fichier2.bat"; // ainsi on peut lancer des programme tout a fait autonome // on peut soit faire p.waitfor() ou pas les deux cas fonctionnent correctement // je suppose aussi que c'est tout a fait vrai pour le cas d'UNIX (je ne l'ai pas tester try { Runtime r = Runtime.getRuntime(); Process p = r.exec(cmd); p.waitFor();//si l'application doit attendre a ce que ce process fini r.exec(cmd2); }catch(Exception e) { System.out.println("erreur d'execution " + cmd + e.toString()); }
+1
En fait, c'est même très moche... alors qu'il suffit d'utiliser la synchronisation!...
En gros ça donne quelque chose comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 thread1() { // je fais mon boulot ... // j'avertis les autres que j'ai terminé: synchronized(monitor) { monitor.notify(); } } thread2() { // j'attends le top départ: synchronized(monitor) { monitor.wait(); } // c'est parti mon kiki ... }
Partager