多线程操作MYSQL数据库

幸福的程序猿 2013-05-18 08:47:48
c++连接MYSQL,多线程实现插入数据,存在多线程同时操作一个表,有异常,如何解决?
...全文
234 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
幸福的程序猿 2013-05-19
  • 打赏
  • 举报
回复
引用 1 楼 hdg3707 的回复:
1。通过线程的互斥来同步操作数据库 2。数据库采用事务处理表中的数据 3。采用共享方式打开数据库,不是以独占方式打开数据库。 另外,你并没说是什么错误信息,因此无法判断原因
数据库操作本身已经是并发控制了是吧,根本不需要人为去控制互斥?
以免我忘记 2013-05-18
  • 打赏
  • 举报
回复
周时操作一个表不会异常,同时用一个连接才会异常。
以免我忘记 2013-05-18
  • 打赏
  • 举报
回复
有一个方法可以实现,不影响并行执行效率。建立一个mysql连接表加上一个临界区,表结点是这样的(mysqlcon,bool),根据实际情况定大小。我用的是10个连接。,当要进行mysql操作时,就从表中取出一个闲置的mysql连接,并把bool量改为true,使用完后改成false。临界区的做用是保障一个mysql连接一次只能被一个线程使用。你现在应该是只有一个mysql连接,所以会出现冲突,效率也不高。
长尾巴的悟空 2013-05-18
  • 打赏
  • 举报
回复
我来混点分的~ 哈哈,只要一分哦~
hdg3707 2013-05-18
  • 打赏
  • 举报
回复
1。通过线程的互斥来同步操作数据库 2。数据库采用事务处理表中的数据 3。采用共享方式打开数据库,不是以独占方式打开数据库。 另外,你并没说是什么错误信息,因此无法判断原因

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧