我想跨多个线程访问 PostgreSQL 表。如何在多线程时保护 PQconn* 对象?是否libpq图书馆提供解决这个问题的任何方法吗?
最佳答案
与 PostgreSQL 的单个连接不支持同时查询。当一个查询处于事件状态时,不可能将其 PGconn
结构重用于其他任何事情,除了可以从另一个线程或信号处理程序调用的 PQcancel()
.
这来自客户端-服务器协议(protocol)的设计,而不是 libpq 本身。
要在多线程内实现并发查询,每个线程必须有自己的连接和自己对应的非共享PGconn
结构。
关于c++ - 线程安全的 PQconn 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28936544/