繁体   English   中英

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

[英]Proper way to set timeout on a method in Java

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM