Java 函数超时
如何在java中实现这一点?或者,更重要的是,我想让我的函数超时 伪代码:Java 函数超时,java,Java,如何在java中实现这一点?或者,更重要的是,我想让我的函数超时 伪代码: public String aLotOfWork() { return hardWork(); if(hardWork() is still executing after 30 seconds) return "TimeOut"; } 我可以使用TimerTask进行此操作,但我不能将timer task run()中的任何值返回给我的上级函数 TimerTask tas
public String aLotOfWork()
{
return hardWork();
if(hardWork() is still executing after 30 seconds)
return "TimeOut";
}
我可以使用TimerTask进行此操作,但我不能将timer task run()中的任何值返回给我的上级函数
TimerTask task = new TimerTask() {
public void run()
{
return ""; // timerTask run must be void.
}
};
Timer timer = new Timer();
timer.schedule(task, 50000, 1);
结帐下课。它提供了一个名为get(timeout,timeUnit)
的方法。将努力工作
任务卸载到未来任务
类
public String aLotOfWork() {
FutureTask task = new FutureTask<String>(new Callable<String>() {
public String call() {
return hardwork();
}
});
try {
return task.get(30, TimeUnit.SECONDS);
} catch(TimeoutException e) {
return "Timeout";
}
catch(Exception e) {
return "Timeout"; // or whatever you like
}
}
公共字符串aLotOfWork(){
FutureTask task=新的FutureTask(新的可调用(){
公共字符串调用(){
回报努力();
}
});
试一试{
返回任务。获取(30,时间单位。秒);
}捕获(超时异常e){
返回“超时”;
}
捕获(例外e){
返回“Timeout”;//或您喜欢的任何内容
}
}
结帐上课。它提供了一个名为get(timeout,timeUnit)
的方法。将努力工作
任务卸载到未来任务
类
public String aLotOfWork() {
FutureTask task = new FutureTask<String>(new Callable<String>() {
public String call() {
return hardwork();
}
});
try {
return task.get(30, TimeUnit.SECONDS);
} catch(TimeoutException e) {
return "Timeout";
}
catch(Exception e) {
return "Timeout"; // or whatever you like
}
}
公共字符串aLotOfWork(){
FutureTask task=新的FutureTask(新的可调用(){
公共字符串调用(){
回报努力();
}
});
试一试{
返回任务。获取(30,时间单位。秒);
}捕获(超时异常e){
返回“超时”;
}
捕获(例外e){
返回“Timeout”;//或您喜欢的任何内容
}
}
这将给CPU带来沉重的负载。这将给CPU带来沉重的负载。