C/C++中的多线程入门源码

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

作者: 贺忆东

一个很简单的多线程程序,主要用于了解临界区的使用

#include

#include

#include

#pragma comment(lib,"libcmt.lib")

const int NLOOP = 100;

int counter = 0;

void doit(void*);

CRITICAL_SECTION beswap ;

int main()

{

HANDLE pnt[2];

InitializeCriticalSection(&beswap);

pnt[0] = (HANDLE)_beginthread(doit,0,NULL);

pnt[1] = (HANDLE)_beginthread(doit,0,NULL);

WaitForMultipleObjects( 2, pnt, TRUE, 1000L);

DeleteCriticalSection(&beswap);

return 0;

}

void doit(void*)

{

printf("go...\n");

int i, val = 0;

for(i = 0; i < NLOOP; ++i)

{

EnterCriticalSection(&beswap);

val = counter;

printf("%d\n",val+1);

counter = val + 1;

LeaveCriticalSection(&beswap);

}

printf("end...\n");

return ;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航