线程的同步(补充同步方法)
这种情况也会出现错误,主要原因是:锁(同步监视器)不一样
public class WindowQuestion {
static int t=10;
public static void main(String[] args) {
CarCompany c=new CarCompany();
CarCompany c2=new CarCompany();
CarCompany c3=new CarCompany();
c.setName("销售1");
c2.setName("销售2");
c3.setName("销售3");
c.start();
c2.start();
c3.start();
}
}
class CarCompany extends Thread{
private int CARNUM=100;//汽车的总量
@Override
public void run() {
while(true){
show();
}
}
public synchronized void show(){
if(CARNUM>0){
System.out.println(Thread.currentThread().getName()+":卖车的号码:"+CARNUM--);
}
}
}
这种情况可以将同步方法改为静态方法(static)