Java中设置方法超时的正确方法

Java中设置方法超时的正确方法,java,guava,Java,Guava,我在这里查阅了一些现有的答案,并结合使用设置超时的方法 但我试图在我的服务实现中的方法上设置超时,这意味着调用方类正在使用接口 所以我希望避免在我的服务实现中实现callable,因为我希望这个方法在同一个线程中执行 有没有其他方法可以设置超时或模拟给定方法上的超时?您可以从中查看,它可以接受任何类并生成有时间限制的代理。但它仍然在内部使用线程池来等待将来至少默认的实现 若要在同一个线程中运行方法,则必须有另一个线程在给定超时后中断该方法。干扰也不总是有效的。因此,线程池和未来是唯一的方法。您可

我在这里查阅了一些现有的答案,并结合使用设置超时的方法

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

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

有没有其他方法可以设置超时或模拟给定方法上的超时?

您可以从中查看,它可以接受任何类并生成有时间限制的代理。但它仍然在内部使用线程池来等待将来至少默认的实现

若要在同一个线程中运行方法,则必须有另一个线程在给定超时后中断该方法。干扰也不总是有效的。因此,线程池和未来是唯一的方法。

您可以从中查看,它可以接受任何类并生成有时间限制的代理。但它仍然在内部使用线程池来等待将来至少默认的实现


若要在同一个线程中运行方法,则必须有另一个线程在给定超时后中断该方法。干扰也不总是有效的。因此,线程池和未来是唯一的方法。

超时是什么意思?如果您的意思是在一段时间后终止该操作,那么如果不在单独的线程中运行该操作,您就不能这样做。当然,您可以在代码中的循环中嵌入计时器检查,例如,当超过时间限制时抛出异常,但这需要可疑代码的重要配合。hi Hot Clicks这正是我的意思,很抱歉问题描述不好。超时是什么意思?如果您的意思是在一段时间后终止该操作,那么如果不在单独的线程中运行该操作,您就不能这样做。当然,您可以在代码中的循环中嵌入计时器检查,并且,例如,当超过时间限制时抛出异常,但这需要可疑代码的重要合作。hi Hot Clicks这正是我的意思,抱歉,问题描述不好。嗨,Tomasz Nurkiewicz,我不知道为什么我说我不希望它在单独的线程中运行。我这样说是因为这些代码已经作为runnable对象的一部分在多个线程中执行,我的意思是不增加更多的复杂性。但只要它看起来像同一个线程,对我来说就足够了,因为我正在创建由多个线程同时运行的顺序进程。我这样说是因为这些代码已经作为runnable对象的一部分在多个线程中执行,我的意思是不增加更多的复杂性。但只要它看起来像同一个线程,对我来说就足够了,因为我正在创建由多个线程同时运行的顺序进程。