最近转C++,打算学习一下C++多线程这快。这篇文章给自己做个备忘。程序代码是由 C++ Programmer's Cookbook 的多线程系列的一篇文章的基础上修改的,这里附上链接 C++多线程(一) // thread.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> #include <Windows.h> #include <iostream> using namespace std; using std::cout; #define THEAD_NUM 10 DWORD WINAPI PrintThreads(LPVOID); CRITICAL_SECTION cs; int _tmain(int argc, _TCHAR* argv[]) { InitializeCriticalSection(&cs); HANDLE hThread[THEAD_NUM] ; DWORD dwThreadId[THEAD_NUM]; for(int i=0;i<THEAD_NUM;i++) { int isStartImmediate=0; if (3==i) { isStartImmediate=CREATE_SUSPENDED; } hThread[i]=CreateThread(NULL,0,PrintThreads,(LPVOID)i,isStartImmediate,&dwThreadId[i]); } Sleep(100); ResumeThread(hThread[3]); for(int i=0;i<THEAD_NUM;i++) { if (hThread[i]) { CloseHandle(hThread[i]); } } system("pause"); DeleteCriticalSection(&cs); return 0; } DWORD WINAPI PrintThreads(LPVOID num){ EnterCriticalSection(&cs); cout<<"Thread Number is"<<num<<endl; LeaveCriticalSection(&cs); Sleep(100); return 0; }