2014-11-14 2 views
0

Я использую libmysql в простом многопоточном приложении, которое будет работать на одноядерном встроенном системном процессоре. Я читал here, что клиентская библиотека почти поточно-безопасная.Многопоточное программирование с libmysql

Нужно ли сериализовать мое приложение (скажем, с помощью мьютекса)?

+2

вы действительно должны прочитать страницу, с которой вы связались. у него есть вся информация. –

ответ

3

В зависимости от того, что вы делаете. В простом сценарии вы просто связываетесь с libmysqlclient_r и убедитесь, что вы не обмениваетесь соединением с несколькими потоками и выполняете несколько запросов «одновременно» в одном соединении.

Другие требования:

  1. Перед созданием каких-либо темы, вызовите mysql_library_init() инициализацию библиотеки MySQL;
  2. В каждом потоковом вызове mysql_thread_init() для инициализации переменных, зависящих от потока, перед использованием любых связанных с MySQL функций;
  3. Перед тем как уничтожить нить, позвоните по телефону mysql_thread_end().

Если ваша программа соблюдает эти ограничения, MySQL является вашим другом.