Bonjour,
j'ai un problème de synchronisation,
en faite j'ai créer les deux classes : Controleur, Capteur
public class Controleur extends Thread {
static int chanel;
public String chaineReponse;
private static final int deltat=1000;
private final int seuil=56;
static Random deltat2,deltat3,deltat4,deltat5;
Capteur C1 , C2 , C3 , C4 ;
float[] temperature = new float [4];
public Controleur()
{
}
public void run()
{
deltat2=C1.lindat2;
deltat3=C2.lindat2;
deltat4=C2.lindat2;
deltat5=C2.lindat2;
int chanel1=(int) C1.EnvoyerValeureTemperature(this);
int chanel2=(int)C2.EnvoyerValeureTemperature(this);
int chanel3=(int) C3.EnvoyerValeureTemperature(this);
int chanel4=(int) C4.EnvoyerValeureTemperature(this);
int l= deltat2.hashCode();
int l2=deltat3.hashCode();
int l3=deltat4.hashCode();
int l4=deltat5.hashCode();
sleep(deltat);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
et l'autre class
public class Capteur extends Thread {
static private int chanel;
int i=0;
static int temperature;
private Random rand = new Random(System.currentTimeMillis());
static Random lindat2= new Random(System.currentTimeMillis());
public Capteur() {
// TODO Auto-generated constructor stub
}
public int EnvoyerValeureTemperature(Controleur C)
{
C.chanel=temperature;
return chanel;
}
public void run() {
try{
synchronized(System.out)
{
System.out.println( "la valeure de la température :"+rand.nextInt(10) + i++);
temperature=rand.nextInt(100);
chanel= temperature;
System.out.println( "le delai : " + lindat2.nextInt(50) );
sleep(lindat2.nextInt(50));
}
}
catch(InterruptedException e)
{
}
}
}
Alors lorsque j'ai lancer l'exécution il m'affiche les bug suivante:
la valeure de la température :00
le delai : 20
Exception in thread "Thread-5" java.lang.NullPointerException
at Controleur.run(Controleur.java:25)
Exception in thread "Thread-6" java.lang.NullPointerException
at Controleur.run(Controleur.java:25)
Exception in thread "Thread-7" java.lang.NullPointerException
at Controleur.run(Controleur.java:25)
Exception in thread "Thread-4" java.lang.NullPointerException
at Collecteur.run(Collecteur.java:13)
la valeure de la température :00
le delai : 33
la valeure de la température :00
le delai : 28
la valeure de la température :00
le delai : 42