用C语言开多线程,想让多个相同的子线程同时运行,怎么实现

看了用HANDLE线程名;线程名=CreateThread(NULL,0,程序名,NULL,0,NULL);的方式开,但是我想让这一个程序作为多个线程一起开的话怎么办呢,... 看了用HANDLE 线程名;
线程名=CreateThread(NULL,0,程序名,NULL,0,NULL);
的方式开,但是我想让这一个程序作为多个线程一起开的话怎么办呢,总不能开200个 ,就写200次吧。
用循环的话线程名又不一样,而且这个线程名也不是数字,不能用for,然后i++那样。
求问C或C++,而不是java。
展开
 我来答
yangjh158
推荐于2018-02-12 · TA获得超过8422个赞
知道大有可为答主
回答量:2079
采纳率:80%
帮助的人:947万
展开全部
工作线程是处理后台工作的,创建一个线程非常简单,只需要两步:实线线程函数和开始线程.不需要由CWinThread派生类,你可以不加修改地使用CWinThread。
AfxBeginThread有两种形式,一种是用来创建用户界面线程的,另一种就是用来创建工作线程的.为了开始执行线程,只需要向AfxBeginThread提供下面的参数就可以了.
1.线程函数的地址
2.传送到线程函数的参数
3.(可选的)线程的优先级,可参阅::SetThreadPriority
4.(可选的)线程开始时候的状态,可设置为CREATE_SUSPENEDE
5.(可选的)线程的安全属性,请参阅SECURITY_ATTRIBUTES
实例代码
UINT ThreadProc(LPVOID pParam)
{
return 0;//线程成功完成
}
CWinThread* AfxBeginThreadProc,//线程函数地址
LPVOID pParam,//线程参数
int nPriority=THREAD+PRIORITY_NOMAL,//线程优先级
int nStackSize=0,//线程堆栈大小,默认为1M
DWORD dwCreateFlags=0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL
);
478617
推荐于2016-05-19 · TA获得超过875个赞
知道小有建树答主
回答量:725
采纳率:100%
帮助的人:95.7万
展开全部
线程名其实是一个地址,所以你要开200个线程,就可以做两百次循环,就可以了CreateThread()的返回HANDLE报存在一个数组里就可以了

HANDLE hThread[200];
for(int i = 0;i<200; i++)
hThread[i] = CreateThread(NULL,0,程序名,NULL,0,NULL);

这样就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z6502367
2014-08-14 · TA获得超过177个赞
知道小有建树答主
回答量:339
采纳率:100%
帮助的人:197万
展开全部
你可以用字符串,比如说abcd再连上i作为线程名啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式