//例1
#include <iostream>
#include<windows.h>
using namespace std;
DWORD WINAPI ThreadProc(LPVOID lpParameter);
int main(){
HANDLE thread=CreateThread(NULL,0,ThreadProc,NULL,0,NULL);
CloseHandle(thread);
for(int i=0;i<5;i++){
cout<<"主线程: i="<<i<<endl; //没有进行线程同步处理,时间片可能提前用完,导致输出换行出错
Sleep(1000);
}
return 0;
}
DWORD WINAPI ThreadProc(LPVOID lpParameter){
for(int j=0;j<5;j++){
cout<<"子线程:j="<<j<<endl;
Sleep(2000);
}
return 0L;
}
//例2
#include <iostream>
#include<windows.h>
using namespace std;
#define NAME_LINE 40
DWORD WINAPI ThreadProc(LPVOID lpParameter);
typedef struct __THREAD_DATA{
int nMaxNum;
char strThreadName[NAME_LINE];
__THREAD_DATA():nMaxNum(0){
memset(strThreadName,0,NAME_LINE * sizeof(char));
}
}THREAD_DATA;
void main(){
THREAD_DATA threadData1,threadData2;
threadData1.nMaxNum=5;
strcpy(threadData1.strThreadName,"线程1");
threadData2.nMaxNum=10;
strcpy(threadData2.strThreadName,"线程2");
//创建第一个子线程
HANDLE hThread1=CreateThread(NULL,0,ThreadProc,&threadData1,0,NULL);
HANDLE hThread2=CreateThread(NULL,0,ThreadProc,&threadData2,0,NULL);
//关闭线程 因为线程创建后立即执行了
CloseHandle(hThread1);
CloseHandle(hThread2);
//主线程的执行路径
for(int i=0;i<5;i++){
cout<<"主线程=== "<<i<<endl;
Sleep(1000);
}
system("pause");
}
DWORD WINAPI ThreadProc(LPVOID lpParameter){
THREAD_DATA *pThreadData=(THREAD_DATA *)lpParameter;
for(int i=0;i<pThreadData->nMaxNum;i++){
cout<<pThreadData->strThreadName<<"-------"<<i<<endl;
Sleep(1000);
}
return 0;
}