MySQL C API的内存泄露问题

程序使用MySQL的C API比较频繁,在检查程序内存泄露的时候,想到了API里面会不会有内存泄露的问题。网上说mysql api在使用的时候会出现泄露,有人用了valgrind来测试,找到了可能出现泄露的地方,官方的api文档里面也说到,如果使用完api之后,最好调用mysql_library_end()函数来释放内存。

 

mysql api的官方建议,如果是多线程的时候,最好是在创建线程之前就调用mysql_init()函数,或者使用mutex加锁,因为这个函数不是线程安全的。(具体见:http://docs.oracle.com/cd/E17952_01/refman-5.5-en/mysql-library-init.html)。在我的程序里面是线程池的概念,在循环里面会频繁使用mysql的库去做连接、查询数据库,而线程不会退出。怎么样可以封装一个线程安全且不会内存泄露的mysql查询函数呢?(使用my_init()和mysql_thread_end()?)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值