在Java中一段时间​​后如何停止线程?

问题描述

| 在我的Android应用程序中,我有一个线程可以从Web服务中获取数据。 因此,通常情况下它可以正常工作,但有时如果连接速度太慢,则可能会挂起。 有什么办法可以设置一些时间,例如1分钟,如果线程进程不是 1分钟内完成。那么我想停止该线程并向用户显示一条消息,指出连接弱/慢,请稍后再试。 请帮忙 !!     

解决方法

我不知道Android是否支持它,但这正是ExecutorService返回的Future对象应该为您做的。特别是,如果任务已开始但尚未完成,则可以使用cancel(boolean)方法来中断该任务。 编写任务时应注意它们可能会被打断,如果已经打断,则应彻底中止。大多数框架IO方法都可以被中断,因此您只需要担心自己的代码即可。     ,这是一个坏主意。出于良好原因,不赞成使用
Thread.stop
方法。 我建议您执行以下操作:根据您的喜好设置网络超时。如果这样做没有帮助,我建议您只是丢弃对该线程的引用(忽略它,使其消亡并收集垃圾),并以关于网络故障的好消息响应。您可以很好地启动新线程以再次尝试。     ,您可以使用的方法:
Thread.interrupt();
不推荐使用Thread.stop()方法     ,创建这样的stop方法,然后调用中断。
public void stop() {
    Thread currentThread= someThread;
    someThread= null;
    currentThread.interrupt();
}
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...