实验6主要是多线程的练习和GUI的实现
本实验主要多线程模拟猴子,每个猴子都有自己独立的线程,这使过河更加快,由于每个猴子都有自己独立的思想和行动,java多线程编程可以仿真猴子过河的真实状态,更加贴近生活。但是多线程也带来了许多麻烦,比如猴子会竞争同一个台阶,如果不在写程序时正确处理,将会造成混乱。我为了避免这一情况,主要给Ladder类的将猴子添加到Rung这个方法加synchronized,使得当一个猴子调用这个方法时其他猴子只能等待。
这个实验我感觉最大的困难是不能很好的debug,因为线程的随机性太大,包括实验指导书中要求的猴子的方向、速度和策略都是随机生成的,不知道下一次相同的情况会什么时候再出现,给debug带来很多困难,而且debug是按代码的顺序执行,和run时的状态根本不一样,所以全程只能靠System.out.print()输出和肉眼debug。