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

来源:互联网 发布:发票数据实时上传功能 编辑:程序博客网 时间:2024/06/13 08:53

 作者:秋镇菜

运行多线程程序时,将Project->Property->c/c++->Code generation ->RunTime Library 改为多线程

 

#include <Windows.h>
#include 
<stdio.h>
#include 
<process.h>

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

const int NLOOP = 10;

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... ");
    
int i, val = 0;
    
for(i = 0; i < NLOOP; ++i)
    
{
        EnterCriticalSection(
&beswap);
        val 
= counter;
        printf(
"%d ",val+1);
        counter 
= val + 1;
        LeaveCriticalSection(
&beswap);
    }

    printf(
"end... ");
    
return ;
}
原创粉丝点击