/*
* 说明:使用信号量进行线程同步
* 特点:允许多个线程在同一时刻访问同一资源
* 解释:Win32中的Semaphore可以被锁住最多n次,其中n是Semaphore被产生时指定的
* 使用:1.多个线程可以同时锁定一个semaphore,不存在拥有权概念
* 2.一旦Semaphore现值降到0,表示资源耗尽,此时任何线程调用必须wait...
*/
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
HANDLE g_hSemp = NULL;
DWORD WINAPI ThreadProc1(LPVOID pVoid);
DWORD WINAPI ThreadProc2(LPVOID pVoid);
int main()
{
// 创建信号量
g_hSemp = CreateSemaphore(NULL, 1, 10, NULL);
DWORD nThreadID = 0;
HANDLE hThread[2] = { 0 };
// 创建工作线程
hThread[0] = CreateThread(NULL, 0, ThreadProc1, NULL,