java程序出错了,求大神指教
程序是写四个线程卖票,用同步代码块的方法避免出现负数票,可是运行结果还是出现了负数,请问是哪出错了?...
程序是写四个线程卖票,用同步代码块的方法避免出现负数票,可是运行结果还是出现了负数,请问是哪出错了?
展开
1个回答
2014-07-25
展开全部
对全局变量加锁 你这个是局部变量 每次循环都会new一个 根本起不到同步作用
追问
恩恩,刚才我把Object obj = new Object();放到run函数外,成功了,但是为什么原来不行呢?
追答
因为原来是对不同的对象加锁,某个线程并不会等待其他线程释放再继续进行,而是同时在运行,原来的写法就和不写synchronized没什么区别
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询