0

我知道不推荐使用 Thread.stop() 并且我已经知道停止线程的替代方法。但是 Thread.stop() 的直接后果是什么,是什么让 Thread.stop() 如此“危险”?

如果我在活动(onDestroy)结束时调用 Thread.stop() 会导致任何问题(我想阻止线程立即访问我活动中的对象)吗?

谢谢和问候

4

2 回答 2

1

文档表明 Thread.stop() 会引发ThreadDeath异常,并且任何 finally 块以及任何拦截/捕获 ThreadDeath 的代码仍将运行。如果您的目标是阻止线程访问对象,那么这不是解决方案。

于 2013-09-11T16:41:22.737 回答
1

Thread.stop() 很危险,因为它会释放所有锁定的对象。这意味着,例如,如果对象正在更新一个数组并且它已将其锁定,因此其他线程在使用该数组之前正在等待该线程完成,并且您调用 Thread.stop(),那么该数组将只部分更新。这可能会导致代码的其他部分出现难以调试的错误。

于 2013-09-11T16:47:51.763 回答