C/C++中的多线程入门(zt)

#include <Windows.h>

#include <stdio.h>

#include <process.h>



#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 ;

}

登录后才可评论.