程就会自动调用其run方法,进入运行状态。Р4.2.4 阻塞Р线程能够运行,但有某个条件能阻止它的运行。当线程处于阻塞状态时,调度机制将忽略线程,不会分配给线程任何处理器时间。直到线程重新进入了就绪状态,它才有可能执行操作。导致线程进入阻塞状态原因主要包括以下几种。Р①通过调用wait()方法使线程挂起。直到线程得到了notify()或notifyAll()消息,线程才会进入就绪状态。当与某对象相关的一个线程调用了notify()方法时,那么等待该特定对象的一个线程便进入就绪状态;当与某对象相关的线程调用了notifyAll()方法后,等待该对象的所有线程都会回到就绪状态。Р②通过调用sleep()方法使线程进入休眠状态。在这种情况下,线程在指定的时间内不会运行。只能等待其结束期后,线程才可以自动进入就绪状态。Р③线程在等待某个输入/输出完成。只能等待该输入/输出操作完成后,线程才可以自动进入就绪状态。Р④调用suspend()方法挂起程序。可以通过调用resume()方法使其进入就绪状态。Р⑤线程试图在某个对象上调用其同步控制方法,但是对象锁不可用。Р4.2.5 死亡Р死亡状态是线程生命周期中的最后一个阶段。一共有两种方式可以导致一个线程的死亡。Р ●自然死亡:线程的run()方法正常结束。Р ●强制死亡:通过执行stop()或destroy()方法使线程终止。Р4.3代码设计Р蜘蛛纸牌游戏共由4个部分组成,分别是:Spider.java,SpiderMenuBar.java,PKCard.java,AboutDialog.java。РSpiderMenuBar.javaР包含名为SpiderMenuBar的public类,其主要功能为生成蜘蛛纸牌游戏的菜单栏,实现菜单栏中各个组件的事件侦听。主要包括3个模块:图形用户界面的构健;组件监听接口的实现;显示可执行操作的线程。