0 0

Tomcat Servlet 多线程到底是怎么实现的?7

我知道一个类要实现多线程,那么就必须继承Thread或者实现Runnable。
大家都知道Servlet是多线程的。我查了一下sun的servlet的源代码,没有发现有继承Thread类和实现Runnable 接口,或者有什么内部继承或者实现了相应的类。我知道可能是Application Server里创建Servlet线程并对其进行管理。有谁对这方面有研究,请指教一下,多谢了!
2009年2月15日 22:04

4个答案 按时间排序 按投票排序

0 0

struts中action跟servlet也是同样原理,单例,创建一次,使用N次。所以也要使用实例字段,除非不会改变的值。
struts2中action那就不一样了,他为每次请求都创建一次,使用一次,创建一次。
所以他可以把页面上表单写成自己实例字段。接受拦截器值注入。

2009年2月15日 22:47
0 0

应该是tomcat里创建响应的socketServer线程类接收请求连接,然后在再创建或引用对应的servlet实例来处理请求连接。servlet是单例的,只创建一次。所以最好不要使用serlvet中的实例字段。。

2009年2月15日 22:42
0 0

servlet跟tomcat没有关系, 多线程是容器提供的能力。 servlet为了能并发执行, 是因为servlet被这些thread使用了。 这么说, 够草根了吧?

关于线程如何被管理的, 办法很多的, 你可以使用JDK提供的API, 也可以自己编码实现thread的管理。 一般来说, API提供的功能已经足够强大了,如果你不是要求那么多的自我控制, 应该是足够使用了。

2009年2月15日 22:04
0 0

sun 的 servlet 源码只是一个接口规范(其中只包含了接口和一些抽象类的定义)。具体实现跟具体的服务器有关,你可以去查看相应的服务器源码。

2009年2月15日 22:04

相关推荐

Global site tag (gtag.js) - Google Analytics