相关疑难解决方法(0)

如何超时一个线程

我想在一段固定的时间内运行一个线程.如果它没有在那段时间内完成,我想杀死它,抛出一些异常,或以某种方式处理它.怎么做到呢?

我从这个线程 中发现的一种方法是在Thread的run()方法中使用TimerTask.

有没有更好的解决方案呢?

 
编辑:添加赏金,因为我需要一个更清晰的答案.下面给出的ExecutorService代码没有解决我的问题.为什么我应该在执行后睡觉()(一些代码 - 我没有处理这段代码)?如果代码完成并且sleep()被中断,那怎么可能是timeOut?

需要执行的任务不在我的控制范围内.它可以是任何一段代码.问题是这段代码可能会遇到无限循环.我不希望这种情况发生.所以,我只想在一个单独的线程中运行该任务.父线程必须等到该线程完成并且需要知道任务的状态(即它是否超时或发生了一些异常或者是否成功).如果任务进入无限循环,我的父线程会无限期地等待,这不是一个理想的情况.

java multithreading timeout timer

246
推荐指数
7
解决办法
23万
查看次数

如何在一段时间后退出while循环?

我有一个while循环,我希望它在经过一段时间后退出.

例如:

while(condition and 10 sec has not passed){

}
Run Code Online (Sandbox Code Playgroud)

java android while-loop

14
推荐指数
3
解决办法
6万
查看次数

Java循环持续一段时间

有没有办法可以轻松地在一段时间内进行for循环?(没有使用System.currentTimeMillis()自己测量时间?)

即我想在Java中做这样的事情:

int x = 0;
for( 2 minutes )  {
   System.out.println(x++);
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java time loops

11
推荐指数
2
解决办法
5万
查看次数

标签 统计

java ×3

android ×1

loops ×1

multithreading ×1

time ×1

timeout ×1

timer ×1

while-loop ×1