作为一个相当大的C应用程序的维护者,该应用程序可以从多个线程进行MySQL调用,我可以说在每个线程中简单地建立一个新连接都没有问题。我遇到的一些警告:
- 编辑:似乎此项目符号仅适用于 <5.5版本;请参阅此页面以获取合适的版本:就像您说的已经在做的那样,针对链接
libmysqlclient_r
。 - 致电
mysql_library_init()
(一次,从main()
)。阅读有关在多线程环境中使用的文档,以了解为什么有必要。 - 在每个线程中
MYSQL
使用一个新结构mysql_init()
。这具有呼唤mysql_thread_init()
您的副作用。mysql_real_connect()
像往常一样,在每个线程中以及其特定于线程的MYSQL结构。 - 如果您要创建/销毁大量线程,则需要
mysql_thread_end()
在每个线程mysql_library_end()
的末尾(以及的末尾main()
)使用。无论如何,这是个好习惯。
基本上,不要共享
MYSQL结构或特定于该结构创建的任何内容(即
MYSQL_STMTs),它会按预期工作。
与为我建立连接池相比,这似乎省去了很多工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)