package
threadcoreknowledge.sixstates;
public
class
blockedwaitingtimedwaiting
implements
Runnable{
public
static
void
main(String[] args) {
blockedwaitingtimedwaiting runnable=
new
blockedwaitingtimedwaiting();
Thread thread1=
new
Thread(runnable);
thread1.start();
Thread thread2=
new
Thread(runnable);
thread2.start();
try
{
Thread.sleep(
5
);
}
catch
(InterruptedException e){
e.printStackTrace();
}
System.out.println(thread1.getState());
System.out.println(thread2.getState());
try
{
Thread.sleep(
2000
);
}
catch
(InterruptedException e){
e.printStackTrace();
}
System.out.println(thread2.getState());
System.out.println(thread1.getState());
}
@Override
public
void
run() {
syn();
}
private
synchronized
void
syn(){
try
{
Thread.sleep(
1000
);
wait();
}
catch
(InterruptedException e){
e.printStackTrace();
}
}
}