请教一个java线程问题,同样程序不同电脑结果不同
不佑天 2017-11-09 08:12:00 public class Site implements Runnable {
private int count = 10;
private int num = 0;
private boolean flag = false;
@Override
public void run() {
while(!flag){
sale();
}
}
public synchronized void sale(){
if(count<=0){
flag = true;
return;
}
num++;
count--;
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"抢到第"+num+"张票,剩余"+count+"张票!");
}
}
public class Test {
public static void main(String[] args) {
Site site = new Site();
Thread person1 = new Thread(site,"桃跑跑");
Thread person2 = new Thread(site,"抢票代理");
Thread person3 = new Thread(site,"黄牛党");
person1.start();
person2.start();
person3.start();
}
}
这个程序运行结果是:
抢票代理抢到第1张票,剩余9张票!
抢票代理抢到第2张票,剩余8张票!
抢票代理抢到第3张票,剩余7张票!
抢票代理抢到第4张票,剩余6张票!
抢票代理抢到第5张票,剩余5张票!
抢票代理抢到第6张票,剩余4张票!
抢票代理抢到第7张票,剩余3张票!
抢票代理抢到第8张票,剩余2张票!
抢票代理抢到第9张票,剩余1张票!
抢票代理抢到第10张票,剩余0张票!
反正是不能实现多个线程交替运行,但是在另一台电脑上就能实现多线程交替运行,jdk和系统版本是一样的,难道和cpu有关系?