作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以知道 Web 容器创建的线程(为每个请求创建新线程)与通过扩展线程类或实现 Runnable 接口(interface)创建的普通线程有何不同。另外,Web 容器如何创建线程,即使 Servlet 接口(interface)或扩展它的 servlet 不包含任何 run() 方法。
最佳答案
java中的所有线程都是通过扩展Thread类或者实现Runnable接口(interface)来创建的。所以Web容器线程也是以同样的方式创建的。
您在 servlet 内部看不到 run 方法,那是因为 servlet 代码是在容器的“主”线程创建的线程的 run 方法内部调用的。容器抽象了所有这些细节,这样我们就可以专注于按请求编写实际的逻辑服务器,而不必担心多个请求的管理。
每个容器都有“主”线程,就像我们独立应用程序的方式一样,或者类似于 spring 中的 SpringMain。
如果您想区分容器线程和您的线程,您可以查看它们的名称,您应该找到一个模式。您可以控制业务逻辑创建的线程的命名法。
关于java - Web容器创建的线程和普通线程有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657383/
我是一名优秀的程序员,十分优秀!