Content-Length: 91991 | pFad | https://postgrespro.ru/docs/postgrespro/current/libpq-threading

Postgres Pro Standard : Документация: 17: 32.20. Поведение в многопоточных программах : Компания Postgres Professional

32.20. Поведение в многопоточных программах #

Начиная с 17-й версии, библиотека libpq всегда поддерживает повторные вызовы и многопоточность. Однако эта реализация не лишена ограничений: два потока не должны пытаться одновременно работать с одним объектом PGconn. В частности, не допускается параллельное выполнение команд из разных потоков через один объект соединения. (Если вам нужно выполнять команды одновременно, используйте несколько соединений.)

Объекты PGresult после создания обычно доступны только для чтения, и поэтому их можно свободно передавать между потоками. Однако если вы используете какую-либо из функций, изменяющих PGresult, описанных в Разделе 32.12 или Разделе 32.14, вы должны также избегать одновременных обращений к одному объекту PGresult.

В ранних версиях библиотеку libpq можно было собрать с поддержкой многопоточности или без неё, в зависимости от параметров компилятора. Эта функция позволяет узнать, поддерживает ли libpq многопоточность:

PQisthreadsafe #

Возвращает состояние потокобезопасности в библиотеке libpq.

int PQisthreadsafe();

Возвращает 1, если библиотека libpq потокобезопасная, или 0 в противном случае. Начиная с версии 17, всегда возвращает 1.

Устаревшие функции PQrequestCancel и PQoidStatus не являются потокобезопасными и не должны применяться в многопоточных программах. Вместо PQrequestCancel можно использовать PQcancelBlocking, а вместо PQoidStatusPQoidValue.

Если протокол Kerberos применяется в пользовательском приложении (помимо возможного использования внутри libpq), необходимо обеспечить блокировку вокруг вызовов Kerberos, так как его функции не являются потокобезопасными.









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://postgrespro.ru/docs/postgrespro/current/libpq-threading

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy