请问下,controller何时回收?

不知道什么时候controller才会回收掉呢?是一个请求结束断开连接后全部回收吗?

评论区

JFinal

2017-12-05 11:29

何时回收取决于 JVM 的行为。 此外,你还可以使用下面的代码重复利用 controller 对象:
me.setControllerFactory(new FastControllerFactory());

flash866

2017-12-06 11:11

@JFinal 可能我意思表达错了,因为我以前是做PHP开发的,一个controller在生成后,当用户断开连接后,这个controller的所有资源都会释放掉,不知道jFinal是怎么设计的呢?一个controller就是一个线程吗?那用户断开连接后,这个线程是不是就消亡了呢?

JFinal

2017-12-06 11:19

@flash866 线程是 tomcat jetty 创建并管理的,jfinal 并不需要自行管理。 数据库连接资源的回收 ActiveRecordPlugin 会自行管理

用户断开连接以后线程不会消亡,而是下个请求过来以后重复利用,这也是比 php 性能高的重大原因之一,php 的 web 框架通常是请求过来临时准备环境,获取资源,请求处理完成后释放这些资源,而 java 的 web 框架则可以重复利用这些资源

tonysb

2023-12-15 16:40

@flash866 请求结束,jfinal好像是在finally中将实例化对象设置为null了,至于什么时候回收,是JVM自己来控制

热门反馈

扫码入社