| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 27. libpq - C 庫 | Fast Forward | Next |
如果在制作 PostgreSQL 發布的時候,使用了 configure 的命令行參數 --enable-thread-safety, 那麼 libpq 是可重入的並且是線程安全的。另外,在你編譯自己的應用代碼時, 可能需要使用額外的編譯器命令行選項。請參考你的系統的文檔獲取有關如何編譯多線程應用的信息。
一個現實是,兩個線程不能試圖同時操作同一個 PGconn 對象。 特別是,你不能從不同的線程裡通過同一個連接對象發出並發的命令。 (如果你需要運行並行命令,請啟動多個連接。)
PGresult對象在創建後是只讀的,因此可以自由地在線程之間傳遞。
過時了的函數 PQoidStatus 和 fe_setauthsvc 都是線程不安全的, 因此不應該在一個多線程的程序裡面使用。 PQoidStatus 可以由 PQoidValue代替。而我們覺得根本沒有調用 fe_setauthsvc 的必要。
libpq 客戶端使用的 crypt 加密方法倚賴 crypt() 系統函數,它通常不是線程安全的。 我們最好使用 MD5 加密,它在所有平台上是線程安全的。