在阅读了文档后,我仍然不清楚正确的用法是什么。是否应该:
1.在启动时、创建线程之前调用一次mysql_init()
和mysql_real_connect()
,所有线程共享从mysql_real_connect()
返回的MYSQL
句柄。
1.在启动时,在创建线程之前调用一次mysql_init()
,然后每个线程调用mysql_real_connect()
以获取线程特定的MYSQL
句柄。
1.每个线程调用mysql_init()
和mysql_real_connect()
。
1.还有别的事吗?
1条答案
按热度按时间nbysray51#
1.在多个线程上共享一个连接不是一个好主意,因为您必须处理应用程序中的各种问题:事务安全、协议缓冲区等
mysql_init()
API函数初始化连接句柄(MYSQL
),该句柄将用于通过mysql_real_connect()
连接到服务器。再次尝试使用同一句柄进行连接将导致错误(CR_ALREADY_CONNECTED=2058)。1.每个线程使用一个连接是更好的解决方案。如果线程不总是使用连接,则使用连接池(例如,通过使用Connector/C++)。