#include <iostream><br />using namespace std;<br />#include "windows.h"<br />extern DWORD WINAPI ThreadFunc(LPVOID);<br />int main(int argc, char* argv[])<br />{</p><p>DWORD threadID;<br />cout << "test thread" << endl;<br />HANDLE hThread = ::CreateThread(NULL, 0, ThreadFunc, 0, 0, &threadID);<br />for (int i = 0; i < 10; i++)<br />{<br />cout << endl << "main thread " << i << endl;<br />}<br />return 0;<br />}<br />DWORD WINAPI ThreadFunc(LPVOID)<br />{<br />int i = 0;<br />while (true)<br />{<br />cout << "Thread Func" << i++ << endl;<br />}<br />}
運行結果:
test thread
main thread Thread Func00
Thread Funcmain thread 11
Thread Func
2
Thread Funcmain thread 32
Thread Funcmain thread 43
Thread Func
5
main thread Thread Func46
Thread Funcmain thread 75
Thread Func
8main thread
6Thread Func
9
main thread Thread Func710
Thread Funcmain thread 118
Thread Func
12main thread
9Thread Func
1請按任意鍵繼續. . .
這個小例子說明兩點:
1 當主線程結束時候,線程也相應結束。
2 cout由於是緩衝區寫資料,所以要保證結果的正確性,需要加入臨界區互斥。