VC++ 最简单的多线程

创建最简单多线程:第一个线程:for(a=0;a<10;a++){Sleep(10000);}第二个线程for(b=0;b<3;b++){Sleep(2000);}第三个... 创建最简单多线程:
第一个线程:
for(a=0;a<10;a++)
{
Sleep(10000);
}
第二个线程
for(b=0;b<3;b++)
{
Sleep(2000);
}
第三个线程:
for(c=0;c<7;c++)
{
Sleep(7000);
}

把这三段代码做成三个并列的线程,同时运行,
暂且不管这个程序是否有实际意义,我只想研究一下代码,看看怎么样创建几个线程。
会的大侠帮帮忙!
展开
 我来答
CIW_BLUE
推荐于2017-11-26 · TA获得超过487个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:0
展开全部
#include <windows.h>
#include <iostream>
using namespace std;

DWORD WINAPI MyThread1(PVOID pvParam)
{
for(int a=0;a<10;a++)
{
cout<<"Thread1"<<endl;
Sleep(10000);
}
return 0;
}

DWORD WINAPI MyThread2(PVOID pvParam)
{
for(int b=0;b<3;b++)
{
cout<<"Thread2"<<endl;
Sleep(2000);
}
return 0;
}

DWORD WINAPI MyThread3(PVOID pvParam)
{
for(int c=0;c<7;c++)
{
cout<<"Thread3"<<endl;
Sleep(7000);
}
return 0;
}
int main()
{
HANDLE hThread1 = CreateThread(NULL, 0, MyThread1, NULL, 0, NULL);
HANDLE hThread2 = CreateThread(NULL, 0, MyThread2, NULL, 0, NULL);
HANDLE hThread3 = CreateThread(NULL, 0, MyThread3, NULL, 0, NULL);
Sleep(5000);
cout<<"Main"<<endl;
CloseHandle(hThread1);
CloseHandle(hThread2);
CloseHandle(hThread3);
return 0;
}

首先创建一个线程实用API CreateThread , 还有就是一个线程函数的原型.
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpsa,
DWORD cbStack,
LPTHREAD_START_ROUTINE lpStartAddr,
LPVOID lpvThreadParam,
DWORD fdwCreate,
LPDWORD lpIDThread
);

DWORD WINAPI ThreadProc(
[in] LPVOID lpParameter
);

还有就是Sleep这个函数是放弃自己运行的时间片....
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友551df6c
2009-01-11 · 超过24用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:74.4万
展开全部
同楼上,稍微补充下,多线程最好用_beginThread和
_beginThreadex,CreateThread运用不当有时候会造成内存泄漏
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式