Потокобезопасный объект PQconn
Я хочу получить доступ к таблице PostgreSQL через несколько потоков. Как защитить объект PQconn* при многопоточности? Библиотека libpq предлагает какой-либо метод для этой проблемы?
1 ответ
Решение
Одно соединение с PostgreSQL не поддерживает одновременные запросы. Когда запрос активен, невозможно повторно использовать его PGconn
структура для всего остального, за исключением PQcancel()
это может быть вызвано из другого потока или обработчика сигнала.
Это происходит от дизайна протокола клиент-сервер, а не от самой libpq.
Чтобы реализовать параллельные запросы в нескольких потоках, каждый поток должен иметь свое собственное соединение и свой собственный соответствующий общий ресурс. PGconn
состав.