There's no mechanism to stop a thread in Java
过go 有这样的机制(Thread.stop()
),但它不安全,因为它可能会使对象处于不一致的状态.这是因为如果线程可能突然停止,您不能保证在行为之前发生.因为线程可能正好在临界区的中间停止,请参见Why is Thread.stop deprecated?.
Instead politely ask to stop
您可以try 到Thread.interrupt()
,但这取决于您的业务逻辑是否达到Thread.isInterrupted()
.你是?大概不会吧.因此,即使您可以设置一些超时,在许多情况下,它也不会起作用.
大多数网络应用程序实际上都是数据库绑定的.这意味着,他们大部分时间都在做一些请求.如果你真的想限制请求时间,并且你的应用程序也是受数据库限制的,你可以在这个级别上设置一些超时.例如,C3P0提供像unreturnedConnectionTimeout、checkoutTimeout这样的超时,而像PostgeSQL这样的数据库提供像statement_timeout这样的各种选项.
与网络上的任何其他通信一样-如果您不想因为防火墙或其他原因而有挂起的风险,则需要设置ConnectionTimeout和socketTimeout.像Spring的RestTemplate这样的工具就有这样的选项.当对方没有回应时,这将有助于处理案件.但如果对方的react 非常缓慢,逐渐地,这是没有帮助的.