使用libmysql进行多线程编程

时间:2014-11-14 18:23:30

标签: c linux multithreading pthreads libmysql

我在一个简单的多线程应用程序中使用libmysql,它将运行在单核嵌入式系统处理器上。 我读到here客户端库几乎线程安全。

我是否需要序列化我的应用程序(例如,使用互斥锁)?

1 个答案:

答案 0 :(得分:3)

取决于您正在做什么。在一个简单的场景中,您只需链接libmysqlclient_r,并确保您不与多个线程共享连接,也不会同时执行多个查询"在一个连接上。

其他要求:

  1. 在创建任何线程之前,请调用mysql_library_init()初始化MySQL库;
  2. 在每个线程调用mysql_thread_init()之前,在使用任何与MySQL相关的函数之前初始化特定于线程的变量;
  3. 在销毁某个帖子之前,请致电mysql_thread_end()
  4. 如果您的程序遵守这些限制,MySQL就是您的朋友。