c++ - 线程安全的 PQconn 对象

标签 c++ multithreading postgresql libpq

我想跨多个线程访问 PostgreSQL 表。如何在多线程时保护 PQconn* 对象?是否libpq图书馆提供解决这个问题的任何方法吗?

最佳答案

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

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

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

关于c++ - 线程安全的 PQconn 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28936544/

相关文章:

sql - 如何在可移植 SQL 中包含特定于 PostgreSQL 的代码?

c++ - Qt - QTextStream - 如何将光标位置设置为一行的开头?

c++ - Arduino "delay"函数的常规 C++ 等价物是什么?

java - Hibernate 外部表关系

c++ - 函数局部静态 const 对象的线程安全初始化

multithreading - local_bh_disable, preempt_disable, local_irq_disable

database - 同一数据空间内的 postgres 主要升级(9.5.x 到 9.6.x)

c++ - 将其 ASCII 的 int 转换为 String

c++ - 列自动对齐 C++

Java多线程赛车模拟问题