300分求 多线程处理问题!?

root3646 2005-03-08 04:56:13
比较急。
程序描述:各线程对文件进行处理[解析提取等]
把处理后的结果(解析出来的很多记录)保存到ACCESS数据库中。

要求速度快:多线程应该可以提高速度,

问题:怎么把提取出来的多条记录存进同一个数据库??


我的思路:分线程处理完之后,把多条数据交给主线程由主线程负责数据库的存储
线程之间的配合和阻塞问题。??

有做过这方面的 说一下,今晚急用。路过的朋友帮忙顶一下,谢了都有分。
提供代码和完整思路的送分至少200!(另开贴)

...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
root3646 2005-05-26
  • 打赏
  • 举报
回复
我把这个贴结了吧。
我的做法,
主线程
网络下载解析 线程
(做信号量互斥)数据存储线程
David_Jin 2005-03-08
  • 打赏
  • 举报
回复
可以在分线程进行文件存贮啊!
分线程创建的时候,就创建自己的数据库连接实例,这样各个线程各自进行运行的时候就没有冲突了.
root3646 2005-03-08
  • 打赏
  • 举报
回复
TO firstshine(黑里透红)
我现在做的是个测试,公司要的。就用ACCESS存储。

其实ACCESS 用起来不慢,用DAO 非常快。快的让你想不到:)
aiirii 2005-03-08
  • 打赏
  • 举报
回复
>>我的思路:分线程处理完之后,把多条数据交给主线程由主线程负责数据库的存储
线程之间的配合和阻塞问题。??

這個思路, 我贊同!

>>各线程对文件进行处理[解析提取等]
如果是密集數據計算, 用多線程不見得有效
多線程只是會提高界面反應速度, 不受後台計算的影響
root3646 2005-03-08
  • 打赏
  • 举报
回复
1。需要解析的文件是不同的多个文件。
firstshine 2005-03-08
  • 打赏
  • 举报
回复
别用Access,Access的速度惊人的慢。
beyondtkl 2005-03-08
  • 打赏
  • 举报
回复
1. 多線程不是萬能,如果你每個線程所處理的事情都是比較復雜的 可能多線程不一定好
2. 你的文件是同一個文件 還是多個不同的文件呢。


t1
t2
t3 ---->>將數據發往你的功能保存層(保存到數據庫),注意同步 --> ? tn..
...
tn

你可以采取之間的通信 可以異步 也可以同步處理,看你具體的保存塊的設計 比如你可以為每一個線程建立一個緩沖,線程傳過來的數據直接往裡面寫就是(當然 有上限),或者 你的線程每傳一條數據過來,就等待保存完後再返回之類的

這裡明顯有效率上的區別 自然難度也步一樣 思路這樣是可以的。
root3646 2005-03-08
  • 打赏
  • 举报
回复
to FigoZhu(谢慕安)
你的意思是 子线程解析出一条记录 就象主进程发消息。
如果我同时开多个子线程,SendMessage 消息传递 是马上处理还是送到消息队列我忘记了。
如果是马上处理,子线程等待他的返回,那住现成可能就是瓶颈。
FigoZhu 2005-03-08
  • 打赏
  • 举报
回复
主要是数据共享问题,随便选一种就可以了。
子线程里将数据准备好后,SendMessage向主线程发一个WM_USER消息
主进程收到后,取出来,写入ACCESS数据库。
要注意冲突。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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