黑马程序员技术交流社区

标题: 在JDK1.1中Thread类定义了suspend()和resume()方法,但是在JDK1.2中已 [打印本页]

作者: 赵江锋    时间: 2011-10-17 18:58
标题: 在JDK1.1中Thread类定义了suspend()和resume()方法,但是在JDK1.2中已
在JDK1.1中Thread类定义了suspend()和resume()方法,但是在JDK1.2中已经过时,应使用什么方法来替代之?
作者: 蒋先    时间: 2011-10-17 18:59
Thread.suspend本身易于产生死锁.如果一个目标线程对某一关键系统资源进行了加锁操作,然后该线程被suspend,那么除非该线程被resume,否则其它线程都将无法访问该系统资源.如果另外一个线程将调用resume,使该线程继续运行,而在此之前,它也需要访问这一系统资源,则将产生死锁.

因此,在Java 2中,比较流行的方式是定义线程的状态变量,并使目标线程轮询该状态变量,当状态为悬挂状态时,可以使用wait()方法使之处于等待状态.一旦需要该线程继续运行,其它线程会调用notify()方法来通知它.





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2