[JAVA] aide sr les Thread
Fermé
kittyhime
Messages postés
9
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
31 juillet 2009
-
31 juil. 2009 à 13:50
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 - 31 juil. 2009 à 21:12
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 - 31 juil. 2009 à 21:12
A voir également:
- [JAVA] aide sr les Thread
- Jeux java itel ✓ - Forum Jeux vidéo
- Telecharger java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Scanf en java ✓ - Forum Java
- Java heap space ✓ - Forum Java
1 réponse
chuka
Messages postés
965
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
377
31 juil. 2009 à 21:12
31 juil. 2009 à 21:12
Salut,
c'est peut-etre un peu tard, mais tu peux essayer cela:
Bon courage!!
@+
c'est peut-etre un peu tard, mais tu peux essayer cela:
package chartostring;
import java.lang.*;
import java.lang.Object.*;
import java.util.*;
import java.util.ArrayList;
class Producteur extends Thread{
private int messagePro; //nbre de message à produire
private int message; //nbre de message produit
private int debit; //debit de production
private ArrayList ar;
public static final Object obj=new Object();
public Producteur(int m, int d,ArrayList ar) {
messagePro=m;
debit =d;
this.ar=ar;
}
public void run() {
for (int i=0;i<messagePro;i++) {
System.out.println("Production du message " + i);
synchronized (obj)
{
ar.add("Production du message " + i);
}
try { sleep(this.debit*1000); }
catch (InterruptedException e) { }
}
}
}
class Consommateur extends Thread{
private Producteur p;
private int debit;
private ArrayList ar;
public Consommateur(Producteur p, int d,ArrayList ar) {
this.p = p;
debit=d;
this.ar=ar;
}
public void run() {
String j="";
while(p.isAlive() || !ar.isEmpty()) {
synchronized (Producteur.obj)
{
if (!ar.isEmpty())
{
j="Consommateur "+(String)ar.get(ar.size()-1);
ar.remove(ar.size()-1);
System.out.println(j);
}
}
try { sleep(this.debit*1000); }
catch (InterruptedException e) { }
}
}
}
/**
* @param args the command line arguments
*/
public class Main {
public static void main(String[] args) throws InterruptedException {
ArrayList ar=new ArrayList(10);
Producteur p=new Producteur(20,1,ar);
Consommateur cons= new Consommateur(p,2, ar) ;
p.start();
cons.start();
p.join();
cons.join();
}
}
Bon courage!!
@+