我正在使用 JSP 和 Jdbc 编写一个应用程序,其中我有一个表名称“COMMENT_DATA”,用户可以在其中发表评论。因此,现在如果有多个用户同时撰写评论并发布,我就会使用线程。所以我将同步将数据插入数据库的方法。那么如何处理其他请求,即如何将其他请求排队以及如何收回并写入数据库
最佳答案
正是如此。每个 HTTP 请求本身就是一个线程。请记住,Web 容器在应用程序的生命周期内仅创建一个 servlet 实例,并且 servlet 代码在所有请求之间共享。这意味着任何类级变量或静态变量都将在所有请求之间共享。如果您有这样一个变量,那么它就不是线程安全的。您需要在方法级别声明请求特定的变量 threadlocal。
至于 JDBC:只要编写可靠的代码,一切都会顺利进行。使用连接池仅对提高连接性能有用(这确实值得付出努力,相信我,连接数据库是一项相当昂贵的任务,可能至少需要 200 毫秒甚至更多,同时重用池中的连接成本几乎没有)。它只是不会改变您编写的代码的线程安全性,它仍然在您的控制/手中。要清楚了解如何以正确的方式进行基本 JDBC 编码,您可能会找到 this article有用。
关于java - 使用线程处理请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1666315/