增加线程可否提高程序的运行速度?

seeku 2003-10-18 02:06:55
我的程序运行方式是先生成一种中间格式,然后再利用自动化生成Excel文件。
感觉速度不快。
可否改成生成中间格式和生成文件同时进行(这个是可行的,因为程序是一段一段输出的)。

不知道这样可否提高效率?

还有一个疑问,线程A申请的空间线程B来释放是否可以?
...全文
140 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
seeku 2003-10-18
  • 打赏
  • 举报
回复
经过实际测试,发现速度并没有提高,反而带来了同步的困扰,而且破坏了原来的面向对象结构。算了,还是按照原来的做法。

谢谢大家!
topjupiter 2003-10-18
  • 打赏
  • 举报
回复
可以多做几个线程专门用于生成文件,不过需要进行进程间的同步和通讯
晨星 2003-10-18
  • 打赏
  • 举报
回复
未必提高速度,因为文件一旦被创建后,所有的写入动作都是先写入内存缓冲,然后在适当的时候操作系统会才把它写入磁盘。
所以,你的程序中并不存在过多的I/0操作等待时间,也就是说,本来就没有浪费时间,开两个线程也就无从“节约时间”。
除非你的主板上有两个CPU。

当然,这只是从理论上的分析。究竟如何,试试不就知道了?
gaomou 2003-10-18
  • 打赏
  • 举报
回复
"线程A申请的空间线程B来释放是否可以"
是用new分配的?
yaoha2003 2003-10-18
  • 打赏
  • 举报
回复
线程开得太多也不好,因为会使CPU忙于线程间的切换
孤必有邻 2003-10-18
  • 打赏
  • 举报
回复
多线程的应用情形是:多个任务相对同时进行,且处理过程相对漫长。
典型情况是:服务端同时响应多个客户端的数据请求,每个请求有多次交互或耗时处理。
对于你的情况,如果两个处理的耗时差距悬殊,则没必要用多线程,如果都很耗时,则用。

15,471

社区成员

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

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