public class work20170617 {
public static void main(String[] args) {
//窗口1
Sp s1=new Sp(1);
s1.setNum(10);//设置票数
Thread t1=new Thread(s1);
t1.start();
//窗口2
Sp s2=new Sp(2);
Thread t2=new Thread(s2);
t2.start();
//窗口3
Sp s3=new Sp(3);
Thread t3=new Thread(s3);
t3.start();
}
}
class Sp implements Runnable{
static LinkedList al=new LinkedList();
int k;
//窗口
public Sp(int k){
this.k=k;
}
//设置多少票
public void setNum(int a){
for(int n=1;n<=a;n++){
al.add(n);
}
}
public void run(){
while(true){
synchronized(this){
if(al.size()>0){
System.out.println("#"+k+"号售票点正在出票,票号为:"+al.removeFirst().toString()+" 还剩余:"+al.size()+"张票");
}else{
break;
}
}
}
}
}
JAVA这个卖票程序加了锁,为什么还会报空指针异常那?
答案:2 悬赏:70 手机版
解决时间 2021-01-25 12:11
- 提问者网友:听门外雪花风
- 2021-01-25 02:01
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-01-25 03:16
要枷锁的是"公共资源",并不是Runnable自己本身
所以把sync..(this)改成 synchronized(al) 就可以了
所以把sync..(this)改成 synchronized(al) 就可以了
全部回答
- 1楼网友:污到你湿
- 2021-01-25 04:50
同问。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯