您的位置:58脚本 > PostgreSQL 在线程化程序中的行为

PostgreSQL 在线程化程序中的行为

2023-05-13 23:32

 PostgreSQL 在线程化程序中的行为

libpq默认是可再入的并且是线程安全的。你可能需要使用特殊的编译器命令行选项来编译你的应用代码。参考你的系统文档来了解如何编译启用线程的应用,或者在src/Makefile.global中查找PTHREAD_CFLAGSPTHREAD_LIBS。这个函数允许查询 libpq的线程安全状态:

PQisthreadsafe

返回libpq库的线程安全状态。

int PQisthreadsafe();

如果libpq是线程安全的则返回 1,否则返回 0。

一个线程限制是不允许两个线程同时尝试操纵同一个PGconn对象。特别是你不能从不同的线程通过同一个连接对象发出并发的命令(如果你需要运行并发命令,请使用多个连接)。

PGresult对象在创建后通常是只读的,并且因此可以在线程之间自由地被传递。但是,如果你使用任何第 33.11 节或第 33.13 节中描述的 PGresult修改函数,你需要负责避免在同一个PGresult上的并发操作。

被废弃的函数PQrequestCancel以及PQoidStatus不是线程安全的并且不应当在多线程程序中使用。 PQrequestCancel可以被替换为PQcancelPQoidStatus 可以被替换为PQoidValue

如果你在应用中使用 Kerberos (除了在libpq中之外),你将需要对 Kerberos 调用加锁,因为 Kerberos 函数不是线程安全的。参考libpq源代码中的PQregisterThreadLock函数,那里有在libpq和应用之间做合作锁定的方法。


阅读全文
以上是58脚本为你收集整理的 PostgreSQL 在线程化程序中的行为全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  PostgreSQL 例子程序

    PostgreSQL 例子程序

    例34.1是一个展示libpq中大对象接口如何使用的例子程序。部分程序被注释但仍保留在代码中,用户可以利用之。该程序可以在源代码...

  • html border style HTML DOM Style borderImage 属性

    html border style HTML DOM Style borderImage 属性

    Style borderImage 属性 Style 对象实例指定作为 div 元素周围边框的图像:document.getElementById(myDIV).style.borderImage=u...

  • htmlstyle属性的用法 HTML DOM Style columnSpan 属性

    htmlstyle属性的用法 HTML DOM Style columnSpan 属性

    Style columnSpan 属性 Style 对象实例让 h2 元素横跨所有列:document.getElementById(myDIV).style.columnSpan=all;定义和用法...

  • 子查询和join查询 OceanBase 查询和子查询概述

    子查询和join查询 OceanBase 查询和子查询概述

    查询(SQL)是指数据库中用来获取数据的方式,它可搭配条件限制的子句(如 WHERE),排列顺序的子句(如 ORDER BY)等语句来...

  •  OceanBase CHR

    OceanBase CHR

    ​CHR​函数将​n​转换为等价的一个或多个字符返回,且返回值与当前系统的字符集相关。语法CHR ( n )参数参数取值范围n0~429496...

  •  OceanBase RPAD

    OceanBase RPAD

    ​RPAD​函数在字符串c1的右边用字符串c2填充,直到长度为n时为止。语法RPAD(c1,n[,c2])参数参数说明c1表示字符串。字符串类型可...

  •  OceanBase SYS_EXTRACT_UTC

    OceanBase SYS_EXTRACT_UTC

    ​SYS_EXTRACT_UTC​函数是返回与指定时间相对应的标准 UTC 时间。语法SYS_EXTRACT_UTC (datetime_with_timezone)注意UTC(Unive...

  •  OceanBase HEXTORAW

    OceanBase HEXTORAW

    HEXTORAW函数将CHAR、VARCHAR2、NCHAR或NVARCHAR2数据类型中包含十六进制数字的字符转换为RAW数据类型。语法HEXTORAW (char)参数...

  •  OceanBase KEEP

    OceanBase KEEP

    KEEP函数用于对一组行中的值进行操作,将这组行按照给定的排序规则排序后返回排在第一或最后的值。作为聚合函数,KEEP对所有行进...

  • 鸿蒙系统 鸿蒙OS ohos.utils
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS