线程安全的 PQconn 对象

Thread safe PQconn object

我想跨多个线程访问 PostgreSQL table。如何在多线程时保护 PQconn* 对象? libpq 库是否提供解决此问题的任何方法?

与 PostgreSQL 的单个连接不支持同时查询。当查询处于活动状态时,不可能将其 PGconn 结构重用于其他任何内容,但可以从另一个线程或信号处理程序调用的 PQcancel() 除外。

这来自客户端-服务器协议的设计,而不是 libpq 本身。

要在多线程内实现并发查询,每个线程必须有自己的连接和自己对应的非共享PGconn结构。