
100张票,用java多线程实现3个窗口按顺序依次卖票,如何实现 20
1个回答
2017-05-05 · 知道合伙人软件行家
关注

展开全部
很简单, 出票里加锁就行了完整代码:
public class Test {
public static void main(String[] args) {
for(int i=0; i<3; i++){
new Thread("线程 " + i){
public void run() {
while(true){
int p = getNumber();
if(p >0 ){
System.out.println(getName() + " 票号: " + p);
}else{
System.out.println("没票了");
break;
}
}
};
}.start();
}
}
public static int num = 100; //总票数
/**
* synchronized 同步锁
* @return
*/
public static synchronized int getNumber(){
if(num >0){
return num --; //如果大于0, 则返回当前票并减少一张
}
return 0;
}
}
追问
大神,你提供的是三个窗口随机卖票的情况,我想实现按顺序卖票,一号窗口卖第一张,二号窗口卖第二张,三号卖第三张,以此类推
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询