C ++ MySQL和多线程 - 每个用户1个DB连接?

时间:2010-07-07 19:51:09

标签: c++ mysql multithreading

多线程应用程序是否适合每1个连接客户端使用1个连接?对我来说似乎无效但是如果没有连接池,当一个人想让每个连接与DB通信时怎么办呢? 感谢

2 个答案:

答案 0 :(得分:0)

这取决于您的架构。

听起来你正在使用服务器 - >分布式客户端模型?在这种情况下,我将实现某种用于数据库访问的层,并隐藏数据访问外观后面的连接池等。

答案 1 :(得分:0)

如果您决定在线程之间共享连接,则需要确保一个线程在另一个线程完全使用之前完成连接(使用互斥锁,信号量或临界区来保护连接)。或者,您可以编写自己的连接池。这并不像听起来那么难......在启动时建立10个连接(或者你的池需要很大)并根据需要分配/解除分配。再次使用互斥锁/ cs / sema保护。