<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 31.19\. 在多線程程序里的行為 libpq是可重入的并且是線程安全的。另外, 在你編譯自己的應用代碼時,可能需要使用額外的編譯器命令行選項。 參考你的系統的文檔獲取關于如果建立線程可用的應用的信息, 或在`src/Makefile.global`中查看`PTHREAD_CFLAGS` 和`PTHREAD_LIBS`。此功能允許查詢libpq的線程安全狀態: `PQisthreadsafe` 返回libpq庫的線程安全狀態。 ``` int PQisthreadsafe(); ``` libpq是線程安全的時,返回1 ;如果不是返回0。 一個線程限制是,兩個線程不能試圖同時操作同一個`PGconn`對象。特別是, 你不能從不同的線程里通過同一個連接對象發出并發的命令。(如果你需要運行并行命令, 請使用多個連接。) `PGresult`對象在創建后是只讀的,因此可以自由地在線程之間傳遞。然而, 如果你使用在[Section 31.11](#calibre_link-1541)和[Section 31.13](#calibre_link-2039) 中描述的任何`PGresult`修改函數,那么它也取決于你可以避免同一 `PGresult`上的并發操作。 過時了的函數`PQrequestCancel`和`PQoidStatus` 都是線程不安全的,因此不應該在一個多線程的程序里面使用。`PQrequestCancel` 可以由`PQcancel`代替。`PQoidStatus`可以由 `PQoidValue`代替。 如果在你的應用內部使用了 Kerberos (而不僅僅是libpq里面), 你就需要在 Kerberos 調用周圍鎖住,因為 Kerberos 函數不是線程安全的。 參閱libpq源代碼里面的`PQregisterThreadLock` 獲取一個在libpq和你的應用之間進行恰當鎖定的方法。 如果你的線程應用有問題,那么運行一個在`src/tools/thread`里的程序, 看看你的平臺是否有線程不安全的函數。這個程序由`configure`運行, 但如果是二進制版本,你的庫可能就不能和制作二進制的那個庫匹配了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看