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);
}
把这三段代码做成三个并列的线程,同时运行,
暂且不管这个程序是否有实际意义,我只想研究一下代码,看看怎么样创建几个线程。
会的大侠帮帮忙! 展开
第一个线程:
for(a=0;a<10;a++)
{
Sleep(10000);
}
第二个线程
for(b=0;b<3;b++)
{
Sleep(2000);
}
第三个线程:
for(c=0;c<7;c++)
{
Sleep(7000);
}
把这三段代码做成三个并列的线程,同时运行,
暂且不管这个程序是否有实际意义,我只想研究一下代码,看看怎么样创建几个线程。
会的大侠帮帮忙! 展开
2个回答
展开全部
#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这个函数是放弃自己运行的时间片....
#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这个函数是放弃自己运行的时间片....
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询