我在一个简单的多线程应用程序中使用 libmysql,它将在单核嵌入式系统处理器上运行。 我读了here客户端库几乎是线程安全的。
我是否需要序列化我的应用程序(例如,使用互斥体)?
最佳答案
取决于你在做什么。在一个简单的场景中,您只需链接到 libmysqlclient_r
并确保您不会与多个线程共享连接,也不会在单个连接上“同时”执行多个查询。
其他要求:
- 在创建任何线程之前,调用
mysql_library_init()
来初始化MySQL库; - 在每个线程调用
mysql_thread_init()
以在使用任何 MySQL 相关函数之前初始化线程特定的变量; - 在销毁线程之前,调用
mysql_thread_end()
。
如果您的程序遵守这些限制,MySQL 就是您的 friend 。
关于c - 使用 libmysql 进行多线程编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26936481/