c - 使用 libmysql 进行多线程编程

标签 c linux multithreading pthreads libmysql

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

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

最佳答案

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

其他要求:

  1. 在创建任何线程之前,调用mysql_library_init()来初始化MySQL库;
  2. 在每个线程调用 mysql_thread_init() 以在使用任何 MySQL 相关函数之前初始化线程特定的变量;
  3. 在销毁线程之前,调用mysql_thread_end()

如果您的程序遵守这些限制,MySQL 就是您的 friend 。

关于c - 使用 libmysql 进行多线程编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26936481/

相关文章:

linux - 如何在子目录 linux mint 中安装 pimcore?

c++ - 在不控制线程的情况下同步 boost::thread 中的 STD cout 输出

java - 在Java中使用Thread对象的内在锁可以吗?

java - 在线程之间传递对象

c++ - c 到 delphi 的结构转换

c++ - 传递具有可变维度的二维数组作为函数参数

c - 什么可能会延迟我的 select() 调用?

c - 错误必须是可修改的左值

linux - 编写将从文件中读取密码并让用户登录的 PAM 模块

c++ - OpenWRT 的简单 Hello World 程序