public class things implements Runnable{
private boolean signal;
private Thread runner=null;
public things() {
super();
if(this.runner==null){
runner=new Thread(this);
runner.start();//开始执行线程
}
}
public boolean getSignal() {
return signal;
}
public void setSignal(boolean signal) {
this.signal = signal;
}
public void run() {
// TODO Auto-generated method stub

try{
Thread.sleep(4000);
}catch(Exception e){
e.printStackTrace();
}
this.setSignal(true);
System.out.println("Thread is running!");
}

}public class test { public static void main(String[] args) {
things a=new things();
things b=new things();
while(true){
if(a.getSignal()&&b.getSignal()){
                                //等待a,b线程的执行完毕!
System.out.println("两个线程已经执行完毕!");
break;
}
}

}
}
在main函数中通过循环不断的判断things类的两个对象a,b的状态值来判断a,b两个对象的线程是否执行完毕。不过感觉用这种循环方式程序效率应该很差,请问用java的同步机制实现以上功能应该怎么写?谢谢!