我对Java相当陌生,我的经验仅限于在Web容器(本例中为Jboss)上运行的基于Web的应用程序。

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

谢谢

最佳答案

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

从您的Web应用程序中启动新线程是完全合法的。例如,您可能需要它来启动一些长期运行的任务(在数据库中注册用户,以电子邮件发送结束,或者计算PI直到小数点后十万位),然后立即关闭用户HTTP请求,从而使用户的浏览器完成加载给定的URL。

关于java - 在基于Java的Web应用程序和独立Java应用程序中,多线程有何不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17065867/

10-11 03:59
查看更多