×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

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

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

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

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

PQisthreadsafe #

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

int PQisthreadsafe();

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

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

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

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению