Oh *_*oon 4 java concurrency servlets
对于可运行的对象,它需要实现Runnable接口或扩展Thread类,但是,似乎HttpServlet没有任何这些.
怎么HttpServlet可以线程或我弄错了?
hom*_*ome 13
Servlet本身不是一个线程.容器维护servlet类的一个实例,每个请求(线程)调用相同的servlet对象.因此servlet实例在线程之间共享.在伪代码中,它可能如下所示:
class ServerThread extends Thread {
private javax.servlet.Servlet servlet;
private javax.servlet.ServletRequest req;
private javax.servlet.ServletResponse res;
public ServerThread(javax.servlet.Servlet servlet, /* request and response */) {
this.servlet = servlet;
this.req = req;
this.res = res;
}
@Override
public void run() {
this.servlet.service(req, resp);
}
}
Run Code Online (Sandbox Code Playgroud)
毫无疑问,实际上它会更复杂,更复杂:-)
BTW:这就是你的servlet类必须是线程安全的原因!
| 归档时间: |
|
| 查看次数: |
2870 次 |
| 最近记录: |