主要实现了简单的Windows下多线程交互。
#include<stdio.h>
#include<Windows.h>
HANDLE hMutex = NULL;//互斥量
//线程函数
DWORD WINAPI Fun(LPVOID lpParamter)
{
for (int i = 0; i < 10; i++)
{
//请求一个互斥量锁
WaitForSingleObject(hMutex, INFINITE);
printf( "A Thread Fun Display!\n");
Sleep(200);
ReleaseMutex(hMutex);
}
return 0L;
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
//创建互斥量锁
hMutex = CreateMutex(NULL, FALSE, (LPCTSTR)"screen");
//线程和线程句柄是不同的概念,线程运行在cpu上
//线程句柄是一个内核对象。我们可以通过句柄来操作线程,但是线程的生命周期和线程句柄的生命周期不一样的。
//线程的生命周期就是线程函数从开始执行到return
//线程句柄的生命周期是从CreateThread开始,到CloseHandle结束
CloseHandle(hThread);
for (int i = 0; i < 10; i++)
{
WaitForSingleObject(hMutex, INFINITE);
printf("Main Thread Display!\n");
Sleep(100);
ReleaseMutex(hMutex);
}
system("pause");
return 0;
}
运行结果: