Valior
Новичок
Как работать через одно соединение с БД в многопоточном режиме?
Как, я думаю, вы уже знаете для работы с PostgreSQL сначала необходимо установить соединение с базой данных, затем используя данное соединение можно отправлять запросы. До меня уже была написана программа, в которой использовалось несколько потоков, в каждом из которых создавалось такое соединение, записывались данные в базу и соединение закрывалось. Эти потоки были итерационные в результате чего вызывались очень много раз. Но постоянное соединение в каждом из них и разъединение расточительство. В итоге руководитель поручил мне во-первых проверить возможно ли "это" и если возможно, то программу переписать.
Что именно нужно? Переписать программу так чтобы в главном потоке программы мы создавали одно подключение к бд и в последствии передавали его параметры во все потоки, где используя его, заносили данные в базу. Закрывать соединение с базой нужно уже после выполнения всех потоков.
Скажите! Это хотя бы возможно? Потому как мой руководитель сказал, что он слышал о том что эту возможность добавили в версии 8.3, но он не уверен. Вот и дал поручение мне проверить. Я подтверждения его слов в интернете пока так и не нашёл.
Ну и если это возможно, не могли бы вы привести самый простенький пример такого кода !?
Как, я думаю, вы уже знаете для работы с PostgreSQL сначала необходимо установить соединение с базой данных, затем используя данное соединение можно отправлять запросы. До меня уже была написана программа, в которой использовалось несколько потоков, в каждом из которых создавалось такое соединение, записывались данные в базу и соединение закрывалось. Эти потоки были итерационные в результате чего вызывались очень много раз. Но постоянное соединение в каждом из них и разъединение расточительство. В итоге руководитель поручил мне во-первых проверить возможно ли "это" и если возможно, то программу переписать.
Что именно нужно? Переписать программу так чтобы в главном потоке программы мы создавали одно подключение к бд и в последствии передавали его параметры во все потоки, где используя его, заносили данные в базу. Закрывать соединение с базой нужно уже после выполнения всех потоков.
Скажите! Это хотя бы возможно? Потому как мой руководитель сказал, что он слышал о том что эту возможность добавили в версии 8.3, но он не уверен. Вот и дал поручение мне проверить. Я подтверждения его слов в интернете пока так и не нашёл.
Ну и если это возможно, не могли бы вы привести самый простенький пример такого кода !?