【发布时间】:2023-01-06 21:50:03
【问题描述】:
我仍然是一名学生,对多线程和数据库没有那么丰富的经验,所以我可能错过了一些明显的东西——希望能得到初学者水平的答案。 我正忙于创建一个虚拟 Java 应用程序,允许用户提交地铁站位置,然后查找离他们位置最近的车站。这一切都发生在 HTTP 上。 此应用程序的后端是 PostgreSQL(带有 PostGis),我通过 PostgreSQL JDBC 连接到数据库。 我希望我的应用程序尽可能多线程。每次我收到一个新的 HTTP 连接时,我都会启动一个新线程并为用户请求提供服务。但是,如果对数据库的读写本身不能并行,我不确定这有多大意义。 根据this,PostgreSQL JDBC 不是线程安全的。但这到底是什么意思呢?这是否仅仅意味着单个连接中的读取和写入不是线程安全的(即在 DriverManager.getConnection() 的每个实例中)?但是,如果我每次收到 HTTP 请求时都建立一个新连接怎么办?并行执行是否安全?这会严重影响性能吗? 关于采取广泛方法的任何其他建议?
【问题讨论】:
-
该请求已经在一个单独的线程中处理,为什么要旋转一个新线程?
标签: postgresql multithreading parallel-processing postgis