【发布时间】:2015-03-28 09:45:22
【问题描述】:
我应该在 servlet 实现中编写线程敏感逻辑。 (Windows 上的线程级模拟)
在此实现中,每个请求都应由新的 Java(= OS Native)线程处理,并且线程应在处理完请求后释放。
我的问题是,有没有标准的方法来阻止 tomcat 重用线程?
更新
最后我决定编写 org.apache.catalina.Executor 接口的自定义实现。它将是预先创建的线程池,但使用的线程只是被丢弃,而不是返回池。
【问题讨论】:
-
我不完全明白你想做什么;线程池(如连接池)的存在是为了提高效率:您是否担心信息从一个线程泄漏到另一个线程?
-
是的。我担心因为线程模拟而导致信息泄露。一些操作系统支持运行线程不同的权限,我使用它。我是我的实现。每个 IO 操作和其他经过审核的本机操作都在使用 underuser 的权限。 ACL 和其他权限将在 Tomcat 执行用户(root 或 www)下评估,但远程用户上下文。