代码:
public class ThreaMain implements Runnable{
public static int count=20;
@Override
public void run() {
while(count>0) {
synchronized(this){
System.out.println(Thread.currentThread().getName()+"-当前剩余票数:"+count--);
}
}
}
public static void main(String[] args) {
ThreaMain Thread1=new ThreaMain();
Thread mThread1=new Thread(Thread1,"线程1");
Thread mThread2=new Thread(Thread1,"线程2");
Thread mThread3=new Thread(Thread1,"线程3");
mThread1.start();
mThread2.start();
mThread3.start();
}
}
- 看了很多博客都是加 sleep 操作,说实话操作有点骚不敢苟同,分析出现 “-1” 的原因:synchronized 的位置不对,代码修改如下
synchronized(this){
while(count>0) {
System.out.println(Thread.currentThread().getName()+"-当前剩余票数:"+count--);
}
}
欢迎评论分享