1
26
作为一个相当大的C应用程序的维护者,它可以从多个线程调用MySQL,我可以说,在每个线程中简单地建立一个新的连接没有问题。我遇到的一些警告:
基本上,不要分享
这似乎比在我身上建立连接池要简单。 |
2
6
您可以创建一个连接池。每个需要连接的线程都可以从池中请求一个空闲线程。如果没有可用的连接,那么您要么阻塞池,要么通过向池添加新连接来增加池。 有篇文章 here 描述连接池的PRO和缺点(虽然它是基于Java的) 编辑:这里有一个关于 connection pools in C edit2:这里有一个指向示例的链接 Connection Pool for MySQL 用C++编写的。(在实现自己的语句时,可能应该忽略goto语句。) |
3
1
在我看来,从MySQL文档中可以清楚地看到,任何特定的MySQL结构都可以在线程中毫无困难地使用——使用 相同的 当状态存储在MySQL连接中时,不同线程中的MySQL结构显然会给您带来极其不可预知的结果。 因此,或者按照上面的建议为每个线程创建一个连接,或者使用一个连接池,并使用某种互斥体保护对该池的访问(即保留或释放连接)。 |
4
-1
它声明mysql_real_connect()在默认情况下不是线程安全的。需要为线程访问编译客户端库。 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |