Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Си MYSQL API в потоках под Linux

578
04 декабря 2010 года
o_serg
93 / / 08.09.2003
Добрый день, пишу программу под linux. Программа многопоточная, каждый поток делает запросы MYSQL серверу. Почитал форумы и документацию по API и понял что не так просто использовать MYSQL в потоках. Вот описание API http://dev.mysql.com/doc/refman/5.0/en/threaded-clients.html, здесь написано, что если использовать одно подключение к mysql в потоках, нужно их блокировать при выполнении mysql_query. Но в таком случае теряется весь смысл многопоточности, т.к. запросы могут выполнятся относительно долго, и потоки большую часть времени будут простаивать в ожидании. Но в документации ничего не сказано, что нужно, чтобы использовать отдельное подключение на поток, можно ли будет обойтись без блокировок. Может быть кто-то работал с этим API, подскажите кто что сможет. Мне важно сделать потоки максимально независимыми друг от друга.

Можно ли решить проблему, использовав UnixODBC?

P.S. Работаю в linux CentOS 5.5, версия mysql 5.1
5
04 декабря 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: o_serg
Вот описание API http://dev.mysql.com/doc/refman/5.0/en/threaded-clients.html, здесь написано, что если использовать одно подключение к mysql в потоках, нужно их блокировать при выполнении mysql_query.


Что мешает использовать для каждого потока свое подключение? Например, таким образом работают веб-сервера.

578
04 декабря 2010 года
o_serg
93 / / 08.09.2003
Цитата: hardcase
Что мешает использовать для каждого потока свое подключение? Например, таким образом работают веб-сервера.



Я как раз это и хотел уточнить, нигде толком не написано нужно ли синхронизировать потоки если соединения будут разные. Нужно ли в таком случае использовать mysql_thread_init(),? Есть ли еще особенности?

5
04 декабря 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: o_serg
Я как раз это и хотел уточнить, нигде толком не написано нужно ли синхронизировать потоки если соединения будут разные. Нужно ли в таком случае использовать mysql_thread_init(),? Есть ли еще особенности?


Документацию на mysql_thread_init пробовали читать?
Среди прочего там написано, что она вызывается при mysql_connect.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог