多线程的整体架构怎么设计?

申宇田 2008-03-27 05:39:53
现在我有一个MFC多线程项目按照下面设计:
1、从本地文件读取很多条需要运行的批处理文件的信息 - 保存在数组里面
2、MFC界面按顺序显示这些信息 - 这个要在主线程里面做
3、创建一个worker thread, 安排一个新线程来执行一个批处理文件
4、批处理文件的执行是通过创建新进程来实现的, 比如ProcRunBatch(...)

worker thread -> new job thread 1 (create new process and wait complete)
-> new job thread 2 (create new process...)
-> ...

现在就是这个jobthread的处理函数JobThreadProc(LPVOID pParam)得创建很多个,还是只要用一个?

希望大家提提意见,看怎么样比较好。。。谢谢
...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
支持搂主,收藏
lk_cool 2008-03-28
  • 打赏
  • 举报
回复
一个就够。不同的JOB可以通过pParam区分一下。
如果有几百个你要建几个个线程函数?

多线程的时候要考虑临界资源问题。
处理好多个线程共同修改一个数据。
mr.zhoux 2008-03-27
  • 打赏
  • 举报
回复
现在就是这个jobthread的处理函数JobThreadProc(LPVOID pParam)得创建很多个,还是只要用一个?

处理文件的,多线程未必比单线程快..也没必要搞那么复杂,实在想练手就开多个多线程处理就是了,你的这个项目也不涉及到同时读/写个文件的情况..
cnzdgs 2008-03-27
  • 打赏
  • 举报
回复
既然这样那你想创建几个线程都可以了。
申宇田 2008-03-27
  • 打赏
  • 举报
回复
cnzdgs:
谢谢你的回复!:)
上面我没有说的很清楚,我的这个项目的最大的需求就是一定要用多线程来运行批处理,简单来说有点为了多线程而多线程的意思。
申宇田 2008-03-27
  • 打赏
  • 举报
回复
现在在demo上测试发现用多个线程同时用同一个JobThreadProc(LPVOID pParam)可以正常工作。
从原理来说其实很简单,因为Windows操作系统已经帮你处理好线程的上下文切换了。
cnzdgs 2008-03-27
  • 打赏
  • 举报
回复
你这种需求不需要多线程。

15,471

社区成员

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

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