Java 从servlet创建的线程的生命周期得到保证了吗?
假设不推荐从servlet启动线程,我想知道是什么让这个从servlet创建和启动的线程意外停止 例如,重用servlet线程会导致子线程被销毁 我需要清楚的参数来证明从servlet生成的线程的生命周期并没有保证到底,或者需要推理来支持其他情况Java 从servlet创建的线程的生命周期得到保证了吗?,java,multithreading,servlets,Java,Multithreading,Servlets,假设不推荐从servlet启动线程,我想知道是什么让这个从servlet创建和启动的线程意外停止 例如,重用servlet线程会导致子线程被销毁 我需要清楚的参数来证明从servlet生成的线程的生命周期并没有保证到底,或者需要推理来支持其他情况 我不想要讨论,我想要清楚明确的示例。从servlet创建的线程不会被容器终止(只要容器正在运行),原因有两个: 容器没有对servlet内部创建的线程的引用,因此它无法对其调用例如Thread.stop()(是的,这是一种不推荐使用的方法,绝对不是终
我不想要讨论,我想要清楚明确的示例。从servlet创建的线程不会被容器终止(只要容器正在运行),原因有两个:
- 容器没有对servlet内部创建的线程的引用,因此它无法对其调用例如
(是的,这是一种不推荐使用的方法,绝对不是终止线程的好方法,)Thread.stop()
- 只有线程本身才知道如何正确解锁它已锁定的监视器,因此强制线程终止将导致监视器的状态不一致
- Servlet规范未涵盖此行为,因此无法保证它将如何在web容器上工作
- servlet不应该生成线程,因为这是由web容器管理的资源
thread.stop()
是不推荐的。是的,确实如此,这是停止线程的一种不好的方式,原因2对此进行了解释。