PostgreSQL10.1手冊_部分IV.客戶端介面_第33章libpq-C庫_33.19.線上程化程式中的行為
33.19. 線上程化程式中的行為
libpq預設是可再入的並且是執行緒安全的。你可能需要使用特殊的編譯器命令列選項來編譯你的應用程式碼。參考你的系統文件來了解如何編譯啟用執行緒的應用,或者在src/Makefile.global
中查詢PTHREAD_CFLAGS
和PTHREAD_LIBS
。這個函式允許查詢libpq的執行緒安全狀態:
一個執行緒限制是不允許兩個執行緒同時嘗試操縱同一個PGconn
物件。特別是你不能從不同的執行緒通過同一個連線物件發出併發的命令(如果你需要執行併發命令,請使用多個連線)。
PGresult
物件在建立後通常是隻讀的,並且因此可以線上程之間自由地被傳遞。但是,如果你使用任何第 33.11 節或第 33.13 節中描述的PGresult
修改函式,你需要負責避免在同一個PGresult
上的併發操作。
被廢棄的函式PQrequestCancel
以及PQoidStatus
不時執行緒安全的並且不應當在多執行緒程式中使用。PQrequestCancel
可以被替換為PQcancel
。PQoidStatus
可以被替換為PQoidValue
。
如果你在應用中使用 Kerberos (除了在libpq中之外),你將需要對 Kerberos 呼叫加鎖,因為 Kerberos 函式不是執行緒安全的。參考libpq原始碼中的PQregisterThreadLock
函式,那裡有在libpq和應用之間做合作鎖定的方法。
如果你線上程化應用中碰到問題,將該程式執行在src/tools/thread
來檢視是否你的平臺有執行緒不安全的函式。這個程式會被configure
執行,但是對於二進位制釋出,你的庫可能不匹配用來編譯二進位制的庫。
本文轉自PostgreSQL中文社群,原文連結:33.19. 線上程化程式中的行為
相關文章
- PostgreSQL10.1手冊_部分IV.客戶端介面_第33章libpq-C庫_33.18.SSL支援SQL客戶端
- PostgreSQL10.1手冊_部分II.SQL語言_第15章並行查詢_15.4.並行安全性SQL並行
- PostgreSQL10.1手冊_部分III.伺服器管理_第22章管理資料庫_22.6.表空間SQL伺服器資料庫
- PostgreSQL10.1手冊_部分III.伺服器管理_第31章邏輯複製_31.7.安全SQL伺服器
- PostgreSQL學習手冊(客戶端命令)SQL客戶端
- PostgreSQL10.1手冊_部分II.SQL語言_第8章資料型別_8.12.UUID型別SQL資料型別UI
- PostgreSQL學習手冊(客戶端命令<一>)SQL客戶端
- PostgreSQL學習手冊(客戶端命令<二>)SQL客戶端
- Nacos - 客戶端註冊客戶端
- 註冊客戶端事件客戶端事件
- PostgreSQL10.1手冊_部分III.伺服器管理_第18章伺服器設定和操作_18.4.管理核心資源SQL伺服器
- Winform客戶端引用WCF客戶端後,部分類無法正常使用ORM客戶端
- C++20協程例項:攜程化的IOCP服務端/客戶端C++服務端客戶端
- mORMot 1.18 第18章 使用REST/JSON的客戶端/伺服器ORMRESTJSON客戶端伺服器
- 中斷客戶端客戶端
- TSM客戶端的排程問題客戶端
- 為oracle客戶端瘦身:Oracle客戶端
- ESP作為單連線中的TCP客戶端TCP客戶端
- 走近原始碼:Redis命令執行過程(客戶端)原始碼Redis客戶端
- IE客戶客戶端程式開發的利器Bindows客戶端
- 如果呼叫遠端遠端url介面為https,且存在客戶端證書驗證,如何在客戶端處理HTTP客戶端
- Oauth2(2)客戶端註冊OAuth客戶端
- MQTT X Web:線上的 MQTT 5.0 客戶端工具MQQTWeb客戶端
- Swoole 協程 MySQL 客戶端與非同步回撥 MySQL 客戶端的對比MySql客戶端非同步
- VC線上程中操作介面
- 服務端和客戶端 RESTful 介面上傳 Excel 的 Python 程式碼服務端客戶端RESTExcelPython
- CouchBase C 客戶端介面呼叫例項客戶端
- 客戶端到伺服器端的通訊過程客戶端伺服器
- 「美餐客戶端 3.0」設計過程客戶端
- OPC客戶端開發過程整理客戶端
- 羽毛球群檔案--客戶手冊
- VNC客戶端是Windows,VNC客戶端是Windows如何進行操作VNC客戶端Windows
- 在netweaver中建立應用程式客戶端客戶端
- 跟蹤客戶端執行的SQL客戶端SQL
- 「iOS」行車服務app 「客戶端、後端思路+程式碼」iOSAPP客戶端後端
- JavaScript判斷手機、平板電腦客戶端程式碼JavaScript客戶端
- 會話中,如何將訪客轉化為客戶的幾種方法會話
- 在客戶端呼叫程式碼中,最好出現DCI中的Data ?客戶端