为什么,不推荐使用STOP()方法? 对程序有什么影响吗?

03-04-30 cute

另一个线程调用一个弃用的 stop() 方法。弃用是指这些方法仍然存在,但是您不应该在新代码中使用它们,并且应该尽量从现有代码中除去它们。

hegong121
2003-05-04 00:54

这是因为stop()用于强制中止线程,线程在中止前不会获得通知,这在一些复杂应用中可能造成不可预料的结果,如资源未释放(如数据库连接、SOCKET连接),事务问题等等。通常的作法是

boolean interrupted=false;

public run()

{

//initialize resource

while(!interrupted)

{

//do my work

}

//release resource

}

public interrupte()

{

interrupted=true

}

调用interrupte()这中止线程,这样线程就有机会执行while循环后面的代码

BillLee
2003-05-26 10:17

看看Java核心技术第二卷《高级特性》就有讲解的