简单的多线程控制
使用的是Mutex方式.
#include "stdafx.h"
#include "windows.h"
//包含_beginthread的头文件,必须将运行库变更为多线程,
//否者将会出现函数未定义
#include "process.h"
//多线程函数体,比直接API的简单多了
void ThreadFunc(void * pvParam)
{
printf("Enter ThreadFunc\n");
HANDLE h=(HANDLE)pvParam;
//独占互斥体
WaitForSingleObject(h,-1);
Sleep( 2000);
printf("Exit ThreadFunc\n");
//释放
ReleaseMutex(h);
}
int main(int argc, char* argv[])
{
//建立一个互斥体
HANDLE h= CreateMutex(0,0,0);
//开多线程
_beginthread(ThreadFunc,0,h);
//等待一小会是故意的,因为经测试可知,有时多线程函数返回了,
//子线程还没有启动起来.然后主线程抢占互斥体,继续运行,
//子线程反而被阻塞.由此可以看出来,实际上在有循序要求的
//多线程中好像Evnet更加的方便
Sleep(500);
//等待子线程返回
WaitForSingleObject(h,-1);
//销毁
CloseHandle(h);
printf("App end\n");
return 0;
}