看完了您的视频,其中extends Thread 类的的那个例子设计的有缺陷.那三个火车票窗口应该是共享那五张火车票,相当于多个线程访问同一个资源,您将票总数(ticketsCounts)设置为成员变量就是错误的,所以结果就是错误!期待您更严谨的课程内容
2015-02-04
讲师回答 / MartonZhang
你好,出现两次“还剩3”是因为出现了数据竞争,有时甚至可能出现“还剩-1”的情况,你可以去分析下线程占用的时机,这个要用同步来解决,或者你给piao变量加个volatile关键字,这个你可以去看下《深入浅出java多线程》里面的讲解,或者查下资料,另外后面我应该也会录制一期内存可见性的视频,也会讲到这个,但是应该不是重点,因为这个在《深入浅出Java多线程》中已经有了!希望对你有所帮助!
2015-02-03