Mr.*_*oob 4 java multithreading android
我在我的应用程序中运行了后台线程,我需要安全地杀死它.除了使用布尔标志之外,我怎样才能杀死java中的线程?我已经读过我不能再使用thread.stop(),因为它不安全.但是有没有正确的方法呢?有人可以给我一个代码片段吗?
谢谢
它在任何语言中永远不会安全地杀死一个线程 - 你不知道该线程可能正在做什么以及它可能留下什么样的状态.使用带有线程的cancel方法偶尔检查isCanceled允许线程管理它自己的安全性 - 只有当它自行杀死或进行所需的清理时才能选择这样做.
如果你实际上不需要杀死一个线程但只想等到它结束,请使用join.
如果你绝对需要杀死一个线程,请继续使用stop.只是不要指望你的状态在之后是安全的或一致的 - 这应该只在终止应用程序/活动时完成.
尝试使用类似的东西
service.getThread().interrupt();
service.setThread(null);
Run Code Online (Sandbox Code Playgroud)
要么
thread.interrupt();
thread = null;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10528 次 |
| 最近记录: |