W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
libpq默認(rèn)是可再入的并且是線程安全的。你可能需要使用特殊的編譯器命令行選項(xiàng)來編譯你的應(yīng)用代碼。參考你的系統(tǒng)文檔來了解如何編譯啟用線程的應(yīng)用,或者在src/Makefile.global
中查找PTHREAD_CFLAGS
和PTHREAD_LIBS
。這個(gè)函數(shù)允許查詢
libpq的線程安全狀態(tài):
一個(gè)線程限制是不允許兩個(gè)線程同時(shí)嘗試操縱同一個(gè)PGconn
對(duì)象。特別是你不能從不同的線程通過同一個(gè)連接對(duì)象發(fā)出并發(fā)的命令(如果你需要運(yùn)行并發(fā)命令,請(qǐng)使用多個(gè)連接)。
PGresult
對(duì)象在創(chuàng)建后通常是只讀的,并且因此可以在線程之間自由地被傳遞。但是,如果你使用任何第 33.11 節(jié)或第 33.13 節(jié)中描述的
PGresult
修改函數(shù),你需要負(fù)責(zé)避免在同一個(gè)PGresult
上的并發(fā)操作。
被廢棄的函數(shù)PQrequestCancel
以及PQoidStatus
不是線程安全的并且不應(yīng)當(dāng)在多線程程序中使用。 PQrequestCancel
可以被替換為PQcancel
。
PQoidStatus
可以被替換為PQoidValue
。
如果你在應(yīng)用中使用 Kerberos (除了在libpq中之外),你將需要對(duì) Kerberos 調(diào)用加鎖,因?yàn)?Kerberos 函數(shù)不是線程安全的。參考libpq源代碼中的PQregisterThreadLock
函數(shù),那里有在libpq和應(yīng)用之間做合作鎖定的方法。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: