我想通过多个线程访问PostgreSQL表。如何在多线程中保护PQconn *对象? libpq库是否为此问题提供了任何方法?
答案 0 :(得分:2)
与PostgreSQL的单一连接不支持同时查询。当查询处于活动状态时,除了可以从另一个线程或信号处理程序调用的PGconn
之外,不可能将其PQcancel()
结构重用于其他任何内容。
这来自客户端 - 服务器协议的设计,而不是libpq本身。
要在多个线程中实现并发查询,每个线程必须拥有自己的连接和自己对应的非共享PGconn
结构。