#include<stdio.h>
#include<windows.h>
int a=0;
CRITICAL_SECTION gcs;
DWORD WINAPI RecvThread(LPVOID lp)
{
int num=*(DWORD*)lp;
while(a<1000)
{
printf("Thread %d a= %d\n",num,a);
EnterCriticalSection(&gcs);
a++;
LeaveCriticalSection(&gcs);
}
return 0;
}
void main(void)
{
InitializeCriticalSection(&gcs);
HANDLE Thread[10];
for(int i=0;i<10;i++)
{
Thread[i]=CreateThread( NULL,0,RecvThread,&i, 0,NULL);
Sleep(500);
}
WaitForMultipleObjects(10,Thread,TRUE,100000);
DeleteCriticalSection(&gcs);
CloseHandle(Thread);
return;
}
本文深入探讨了并发编程的概念,通过使用C语言和Windows API实现了线程间的数据同步与互斥,展示了如何利用临界区(CriticalSection)来管理共享资源,确保线程安全。

被折叠的 条评论
为什么被折叠?



