Thread runnable et blocked
Bonjour,
j'ai essayé ce prg suivante,quand je l'exécute,j'ai un pb avec son output
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
public class TestThread extends Thread
{
Thread t;
public TestThread(String name)
{
super(name);
System.out.println("status du thread"+name+"="+this.getState());
this.start();
System.out.println("status du thread"+name+"="+this.getState());
}
public TestThread(String name,Thread t)
{
super(name);
this.t=t;
System.out.println("status du thread"+name+"="+this.getState());
this.start();
System.out.println("status du thread"+name+"="+this.getState());
}
public void run()
{
for(int i=0;i<10;i++)
{
System.out.println("status"+this.getName()+"="+this.getState());
if(t!=null)System.out.println("status de"+t.getName()+" pendant le thread"+this.getName()+"="+this.getState());
}
}
public void setThread(Thread t)
{
this.t=t;
}
}
public class Test
{
public static void main(String[]args)
{
TestThread t=new TestThread("A");
TestThread t2=new TestThread("B",t);
try
{
Thread.sleep(1000);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
System.out.println("statut du thread"+t.getName()+"="+t.getState());
System.out.println("statut du thread"+t2.getName()+"="+t2.getState());
}
} |
voilà son output
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
status du threadA=NEW
status du threadA=RUNNABLE
status du threadB=NEW
status du threadB=RUNNABLE
statusA=RUNNABLE
statusA=RUNNABLE
statusA=RUNNABLE
statusA=RUNNABLE
statusB=RUNNABLE
status deApendant le threadB=RUNNABLE
statusB=RUNNABLE
statusA=RUNNABLE
status deApendant le threadB=RUNNABLE
statusB=RUNNABLE
status deApendant le threadB=RUNNABLE
statusA=RUNNABLE
statusB=RUNNABLE
statusA=RUNNABLE
statusA=RUNNABLE
status deApendant le threadB=RUNNABLE
statusA=RUNNABLE
statusB=RUNNABLE
statusA=RUNNABLE
status deA pendant le threadB=RUNNABLE
statusB=RUNNABLE
status deA pendant le threadB=RUNNABLE
statusB=RUNNABLE
status deA pendant le threadB=RUNNABLE
statusB=RUNNABLE
status deA pendant le threadB=RUNNABLE
statusB=RUNNABLE
status deA pendant le threadB=RUNNABLE
statusB=RUNNABLE
status deA pendant le threadB=RUNNABLE
statut du threadA=TERMINATED
statut du threadB=TERMINATED |
mon question est pourquoi je n'ai pas réussi avoir blocked
par ex:
status de B=RUNNABLE
status de A pendant le thread B=BLOCKED
Veuillez m'aidez svp