1

我已经在 SO 上查看了一些现有的答案,并且我将FutureExecutorService结合使用,将TimeUnit设置为方法的超时。

但是我试图在我的服务实现中的一个方法上设置超时,这意味着调用者类正在使用接口。

所以我想避免在我的服务实现中实现可调用,因为我希望这个方法在同一个线程中执行。

是否有其他方法可以在给定方法上设置超时或模拟超时?

4

1 回答 1

1

您可以TimeLimiter看一下,它可以采用任何类并生成限时代理。但它仍然在内部使用线程池来等待Future(至少是默认SimpleTimeLimiter实现)。

我想在同一个线程中运行方法,你必须有另一个线程在给定超时后中断它。中断并不总是有效。因而线程池Future是唯一的办法。

于 2012-10-03T21:43:08.723 回答