出现
窗口1卖了1张票,剩余票数为:3
窗口1卖了1张票,剩余票数为:1
窗口1卖了1张票,剩余票数为:0
窗口3卖了1张票,剩余票数为:2
窗口2卖了1张票,剩余票数为:3
因为System.out.println();打印了已经被其他线程的ticketsCont
可以写成
int current = --ticketsCont;
System.out.println(Thread.currentThread().getName() + "卖了一张票,剩余票数为" + current);
窗口1卖了1张票,剩余票数为:3
窗口1卖了1张票,剩余票数为:1
窗口1卖了1张票,剩余票数为:0
窗口3卖了1张票,剩余票数为:2
窗口2卖了1张票,剩余票数为:3
因为System.out.println();打印了已经被其他线程的ticketsCont
可以写成
int current = --ticketsCont;
System.out.println(Thread.currentThread().getName() + "卖了一张票,剩余票数为" + current);
2015-08-07
OutputStream os = new FileOutputStream(fileName,true);这句报错了,不能从FileOutputStream转换成OutputStream,为何老师的不报错呢?
2015-08-04
调用了start方法之后,线程会进入可运行状态(runnable),这时候如果能够抢到cpu时间片,就会执行run方法中的代码.这就意味着执行start方法后,该线程不一定就运行了,是否运行取决于cpu的调度。这是我的理解,希望能对你有所启发。
2015-07-27
分明是CPU执行速度太快,在窗口2获取到执行资格时,瞬间就将这个5张票执行完了,导致其他线程获取执行资格时,发现没票可卖了。
2015-07-14