问题描述:
在初次使用多线程进行“模拟购票”时,发现自己写的程序和老师的一模一样,但是自己的程序始终只有“窗口1”在进行售票。
问题原因:
自己电脑cpu处理比老师的快太多,还未等线程2根本抢不到“cpu执行权”票就已经被“线程1”枪完。
解决办法:
方法一:根据问题原因,可以通过提高运行所需时间让线程1无法短时间完成全部任务,即无法抢完全部票,通过将票数从100,调高到10000,就能出现线程2抢到票的情况。根据cpu性能的不同,这个票数可以更改。
方法二:同理,我们可以通过休眠线程来达到同样的效果。