java为什么servlet的init()方法在不同的线程中运行?
这是《头先servlet和JSP》一书的摘录。我不明白的是为什么init()
方法单独在线程A
中运行,而后面的service()
方法在另一个线程B
中运行
这是否意味着从浏览器到servlet的每个请求都有两个线程?或者init()
对于容器可能创建的所有servlet实例都是通用的吗?这是错误的,因为它不是静态方法
你可以在下面搜索框中键入要查询的问题!
这是《头先servlet和JSP》一书的摘录。我不明白的是为什么init()
方法单独在线程A
中运行,而后面的service()
方法在另一个线程B
中运行
这是否意味着从浏览器到servlet的每个请求都有两个线程?或者init()
对于容器可能创建的所有servlet实例都是通用的吗?这是错误的,因为它不是静态方法
# 1 楼答案
servlet只被
init()
初始化一次,但对于每个新请求,都会创建一个新线程,或从池中分配一个新线程,以在适当的方法上调用该servlet实例对于每个新请求,
HttpRequest
和HttpResponse
对象都是新的,线程,但不是servlet实例# 2 楼答案
此描述适用于单个servlet实例。直观地说,您可以将其视为在其他线程中处理请求,而不是阻塞主线程。如果请求需要花费大量时间,那么冻结应用程序以提供服务是没有意义的,因此每个请求都会导致fork