在基于Java的Web应用程序与独立Java应用程序中,多线程有何不同

kap*_*non 2 java multithreading web-applications

我对Java很新,我的经验仅限于在Web容器上运行的基于Web的应用程序(在我的例子中是Jboss).

我是否正确地说,对于Web应用程序,Web容器负责多线程?如果是这样,我可以在基于Web的应用程序中引入新的步骤吗?这样做有什么好处,在什么情况下需要这样做?

谢谢

Vic*_*kin 7

大多数Web容器使应用程序运行多线程,因为容器实现了"多线程servlet模型".因此,您的应用程序(您的servlet的代码)已经由多个线程运行,因此,它必须是线程安全的(在访问共享数据时必须使用正确的同步,例如您的servlet类的实例字段等)

从Web应用程序中启动新线程是完全合法的.例如,您可能需要它来启动一些长时间运行的任务(在数据库中注册用户,以电子邮件发送结束,或计算PI最多100000个小数位)并在此之后立即关闭用户HTTP请求,从而使用户的浏览器完成加载URL.