6
A
回答
1
这个帖子谈了每吨线程,请阅读并重新发布,如果不回答你的问题
1
在java中,不提供方法停止线程。
你只能interrupt
线程,但在国家线程必须可中断,像sleep
,wait
,等...
,也可以使用一些技巧,以使线程抛出异常 ,如:
1,如果线程是连接网络的,你想停止线程,可以关闭网络连接,会抛出ioexception;
2.如果线程读取这个文件,你可以关闭流抛出IOException;
3.如果线程查询数据库,就可以关闭数据库
所以它取决于你的线程工作。
1
其实线程方法stop()
,这样你就可以去了所有的工作线程,并呼吁每一个这种方法。
的问题是“何处获取工作线程的名单?” 更好的解决方案是将此列表存储在应用程序级别的某处,即每次创建工作线程时都将其放入特殊列表中。这是更好的解决方案,因为你只知道线程是“worker”线程。
但理论上你甚至可以动态地发现你的应用程序和检索线程。有填充提供的数组的静态方法Thread.enumerate(Thread[] threads)
。但是如何知道现在有多少线程在运行?使用Thread.activeCount()
。
Thread[] threads = new Thread[Thread.activeCount()];
Thread.enumerate(threads);
for (Thread t : threads) {
if (isWorkerThread(t)) {
t.stop();
}
}
它是由你来确定你的工作线程。例如,您可以使用该线程的名称或线程的堆栈跟踪。
但它调用的方法已过时stop()
犯罪。请参阅此方法的javadoc以了解其原因。
“正确”的方法是实现在应用层正常关机机制。每个线程都应该检查一些标志,说明线程是否应该关闭,以及何时标志为真,只需从run()
方法返回即可。在这种情况下,关闭工作线程非常简单:只需将该标志的值设置为true,线程将自行终止。这是“正确的”解决方案。
相关问题
- 1. Android:线程停止工作
- 2. Android应用程序停止工作-Eclipse
- 3. 停止应用程序中的所有线程
- 4. GC是否停止.NET中的所有应用程序线程?
- 5. 如何处理 - 应用程序已停止在Android中工作
- 6. Xorg在所有X应用程序退出后停止工作
- 7. 排球请求停止为我所有的android应用程序工作
- 8. PHP线程停止工作
- 9. 线程停止工作
- 10. 停止线程不工作
- 11. C#应用程序停止工作
- 12. 应用程序停止工作
- 13. setOnItemSelectedListener:应用程序停止工作
- 14. 应用程序已停止工作
- 15. 作业调度程序停止工作,如果应用程序死亡android
- 16. 如何停止Android中的线程?
- 17. 如何停止android中的ASyncTask线程
- 18. 不停止gdb中的所有线程
- 19. 在Android应用程序中停止线程
- 20. 应用程序在android中停止工作
- 21. 应用程序在Android模拟器中停止工作
- 22. 9贴片图像停止应用程序在Android中工作
- 23. 未处理的异常停止winform应用程序中的所有线程?
- 24. 如何确保在主线程停止之前所有线程都已停止?
- 25. 停止Android应用程序的所有活动和片段
- 26. 我的Android应用程序突然停止工作
- 27. Android的JNI:应用程序停止工作
- 28. Android:停止线程
- 29. 如何在android中停止此线程?
- 30. 如何在Android中停止线程?
你是什么意思停止主线程?你对工作线程有什么意义? – Blackbelt 2012-03-14 09:44:17
你有没有试过搜索相关的东西? StackOverflow有一个不错的搜索工具。你的问题不容易理解,请解释。 – 2012-03-14 09:52:43