java - 中断tomcat线程是否安全

标签 java multithreading tomcat

我的处境很奇怪。在我的网络服务器(tomcat)中,根据网络请求,我基本上需要取消以前的请求。我有一个对执行上一个请求的线程的引用。所以我可以直接中断那个线程,节点会做剩下的事情。

我知道你不应该中断你不拥有的线程。但是在这种情况下中断tomcat线程安全吗?什么可以是另一种方式?维护自己的线程池是浪费资源和开销

最佳答案

维护您自己的线程池是一种资源浪费,但它在其他方面也是有益的,例如您的应用程序服务器的稳定性。因此,您需要决定哪个更重要:几千字节的内存和 CPU 周期或稳定、可靠的应用程序。

中断另一个线程的问题是您通常不能确定另一个线程在代码中的什么位置。您可能想为此使用锁定:

线程 A 在可以安全中断时锁定某些东西,线程 B 检查锁,如果它无法获得它,它会中断 A。

但是当A刚要放弃锁,B检查锁,A解锁并开始清理,B发送中断时会发生什么?

所以你真的应该使用你自己的线程池。

关于java - 中断tomcat线程是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508599/

相关文章:

java - 弹出并叠加页面

java - 包装方法和包装类

python - threading.Thread 如何在 Python 中产生剩余的量子?

tomcat - Apache Tomcat IPv6 在没有任何 server.xml 更改的情况下是否兼容?

spring - 单个根 URL 下的多个 CardDAV 服务器可能吗?

java - Tomcat集群的优缺点

java - Blob 的 Swagger 规范表示

java - 具有昂贵的自定义键功能的列表的最大值

c# - 将新的 Dispatcher 绑定(bind)到 WPF 中的线程

java - 如何从我的线程倒计时类获取更新的变量