如果我为每个线程初始化一个mysql连接,mysql_query是否是线程安全的?

时间:2012-03-28 12:10:18

标签: mysql c thread-safety

我想知道的是,在具有以下条件的C api线程安全中,mysql_query或其他mysql函数是:

  1. 使用libmysqlclient.so但不使用libmysqlclient_r.so
  2. 在每个线程中,调用mysql_init和mysql_real_connect保护全局互斥锁以获得每个线程的一个mysql连接
  3. 使用每个线程自己的mysql连接调用mysql_query或其他mysql函数而不保护全局互斥锁
  4. 这是线程安全的吗?

    好吧,我认为它是,并且从我测试的,它似乎是线程安全的。

    但我不确定。有谁能告诉我?

    非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

线程安全是一个复杂的问题。在我的一个(Python)项目中,我使用一个MySQL连接并使用锁保护每个单独的调用。这适用于多个线程。