libpq默认是可再入的并且是线程安全的。你可能需要使用特殊的编译器命令行选项来编译你的应用代码。参考你的系统文档来了解如何编译启用线程的应用,或者在src/Makefile.global
中查找PTHREAD_CFLAGS
和PTHREAD_LIBS
。这个函数允许查询
libpq的线程安全状态:
PQisthreadsafe
返回libpq库的线程安全状态。
int PQisthreadsafe();
如果libpq是线程安全的则返回 1,否则返回 0。
一个线程限制是不允许两个线程同时尝试操纵同一个PGconn
对象。特别是你不能从不同的线程通过同一个连接对象发出并发的命令(如果你需要运行并发命令,请使用多个连接)。
PGresult
对象在创建后通常是只读的,并且因此可以在线程之间自由地被传递。但是,如果你使用任何第 33.11 节或第 33.13 节中描述的
PGresult
修改函数,你需要负责避免在同一个PGresult
上的并发操作。
被废弃的函数PQrequestCancel
以及PQoidStatus
不是线程安全的并且不应当在多线程程序中使用。 PQrequestCancel
可以被替换为PQcancel
。
PQoidStatus
可以被替换为PQoidValue
。
如果你在应用中使用 Kerberos (除了在libpq中之外),你将需要对 Kerberos 调用加锁,因为 Kerberos 函数不是线程安全的。参考libpq源代码中的PQregisterThreadLock
函数,那里有在libpq和应用之间做合作锁定的方法。
Style borderImage 属性 Style 对象实例指定作为 div 元素周围边框的图像:document.getElementById(myDIV).style.borderImage=u...
Style columnSpan 属性 Style 对象实例让 h2 元素横跨所有列:document.getElementById(myDIV).style.columnSpan=all;定义和用法...
查询(SQL)是指数据库中用来获取数据的方式,它可搭配条件限制的子句(如 WHERE),排列顺序的子句(如 ORDER BY)等语句来...
SYS_EXTRACT_UTC函数是返回与指定时间相对应的标准 UTC 时间。语法SYS_EXTRACT_UTC (datetime_with_timezone)注意UTC(Unive...
HEXTORAW函数将CHAR、VARCHAR2、NCHAR或NVARCHAR2数据类型中包含十六进制数字的字符转换为RAW数据类型。语法HEXTORAW (char)参数...