我读到Thread类stop(),destroy(),resume()方法已被删除。这是一个原因:
"因为以这种方式停止线程是不安全的,并且可能使您的应用程序和VM处于不可预测的状态"
老实说,我从文本中并没有完全理解其中的原因。有人可以更清楚地解释一下(特别是" VM无法预测"以及"不安全"单词)
由于
答案 0 :(得分:4)
因为它解锁了所有监视器线程已锁定,因此其他线程可能会访问状态不一致的对象。
更多信息:
答案 1 :(得分:0)
本文http://developer.android.com/resources/articles/painless-threading.html解释了Android中使用的线程模型。从该页面引用
Android UI工具包不是线程安全的
这意味着如果你正在进行大量的线程操作,你可能会遇到一些非常奇怪的,看似随机的错误。
相反,你应该使用AsyncTasks来完成对UI线程花费太长时间的事情。这包括保存到SD卡,访问数据库或发送网络请求等内容。有关AsyncTasks的更多信息,请参阅我上面链接的文章以及http://developer.android.com/reference/android/os/AsyncTask.html
答案 2 :(得分:0)
stop()
和resume()
已在Java中弃用了十年左右。自Java 1.5以来,{J}已弃用destroy()
。 Dalvik只是反映了Java的功能。