关于VC多线程和数据库的问题! 高分求教!!

zxb 2002-04-18 10:23:45
守护线程从数据库中利用ADO 提取数据(每次提取150条纪录),然后同时启动16个线程,,,线程(单条纪录)对记录集处理数据后,,写入到数据库中。

运行到几千条后,,程序停止,,无任何提示!所有线程均无法跟踪!


线程数降到4时可以安全运行,,

请问,,问题到底处在哪里呢!!




...全文
57 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxb 2002-04-22
  • 打赏
  • 举报
回复
我已经找到原因了,,,

谢谢各位!
BigTemplar 2002-04-19
  • 打赏
  • 举报
回复
你用的是不是Release版,用debug版应该可以看到错误,估计是用了cstring,clist之类的东西,在多线程中不可用
zxb 2002-04-19
  • 打赏
  • 举报
回复
提示我也加入了,,

可是,,每次程序停止的时候,,最后出现停止提示信息,,不一样,,

我都快搞蒙了,,

还有,,数据库连接数目绝对没有问题的!
格利高里 2002-04-19
  • 打赏
  • 举报
回复
16个线程有点多了
格利高里 2002-04-19
  • 打赏
  • 举报
回复
是不是在某些情况下出现死锁了?或者达到了数据库的最大连接数目?在认为可能出问题的地方加入提示看看。
zxb 2002-04-19
  • 打赏
  • 举报
回复
,,在每个线程都有各自的ADO连接,,

我想不应该有互斥的问题,,

如果,,就是有这个问题,,那问题应该如何解决呢!
seangun 2002-04-19
  • 打赏
  • 举报
回复
我认为系统设计有问题!
similar99 2002-04-19
  • 打赏
  • 举报
回复
你好,
你的情况是典型的数据库死锁症状.
当两个事务互相请求对方正在使用的资源, 或者3个以上事务循环请求另一个事务正在使用的资源. (如: A->B, B->C, C->A ). 会导致数据库死锁.
因为使用Update, delete 等SQL 会锁定当前表. 所以建议每个线程在执行Update,Delete时使用信号量或互斥量.
jeffchen 2002-04-19
  • 打赏
  • 举报
回复
你用的是什么数据库?
处理后的结果会不会有违反数据表规则的情况?
zxb 2002-04-19
  • 打赏
  • 举报
回复
Release 我也作了,,

效果是一样的,,

你说的CString 这个东西,,我是用了,,

我感觉不是这里面出的问题,,

因为用的是线程内部变量,,应该不会出问题的!
iceneve 2002-04-18
  • 打赏
  • 举报
回复
记录集指针属于临界资源
AaronLiu 2002-04-18
  • 打赏
  • 举报
回复
在读写数据库时你进行了互斥了吗?我想问题可能在此。

15,473

社区成员

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

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