我是否知道如何通过Web容器创建线程(为每个请求创建新线程),这与通过扩展线程类或实现Runnable接口创建的普通线程不同。 Web容器如何创建线程,即使Servlet接口或扩展它的servlet不包含任何run()方法。
答案 0 :(得分:1)
java中的所有线程都是由Extending Thread Class或实现Runnable Interface创建的。因此,Web容器线程也以相同的方式创建。
你没有在servlet中看到run方法,因为servlet代码是在" main"创建的线程的run方法中调用的。容器的线程。容器抽象了所有这些细节,因此我们可以专注于通过担心多个请求管理的请求来编写实际的逻辑服务器。
每个容器都有" main"线程,我们对独立应用程序的方式,或类似于Spring的SpringMain。
如果要区分容器线程和线程,可以查看它们的名称,然后找到一个模式。您可以控制业务逻辑创建的线程的命名。
答案 1 :(得分:0)
线程之间没有区别,除非在Web容器线程中通常从线程池中获取,因为每次创建新的线程对象都是昂贵且耗时的。
(线程池是预先实例化的空闲线程的集合,它们随时准备好工作,通常按队列组织)。