【发布时间】:2013-12-21 12:04:45
【问题描述】:
我有以下两个类
public class TimeoutHandler
{
private int timeoutMsec = 10000;
private ScheduledExecutorService scheduler;
private ScheduledFuture<String> future;
public TimeoutHandler()
{
}
public TimeoutHandler(int msec)
{
timeoutMsec = msec;
}
public void startTimeoutHandler() throws TimeoutException
{
scheduler = Executors.newScheduledThreadPool(1);
future = scheduler.schedule(new TimeoutCallable(), timeoutMsec, TimeUnit.MILLISECONDS);
}
}
和
public class TimeoutCallable implements Callable<String>
{
@Override
public String call() throws TimeoutException
{
throw new TimeoutException();
}
}
现在我使用startTimeoutHandler() 方法启动TimeoutHandler,它应该安排未来的线程在timeoutMsec 中启动。问题是,TimeoutCallable 永远不会被调用,throw new TimeoutException(); 永远不会启动。有什么建议吗?
【问题讨论】:
标签: java exception timeout callable