標籤:style blog io ar color os sp for div
#include <stdio.h>#include <windows.h>DWORD WINAPI ThreadFunc (LPVOID);int main (){ std::ios::sync_with_stdio(false); HANDLE hThrd = NULL; DWORD threadId = 0; //無法預測結果, 執行次序無法保證 //因為 task switch 隨時可能發生 for (int i = 0; i < 5; ++i) { /* //傳回兩個值, 第一個值是 HANDLE, 這也是它的傳回值, 跟線程有關的 API 都與它有關 HANDLE CreateTHread( LPSECURITY_ATTUIBUTES
ipThreadAttributes, //新線程的安全屬性(NULL 意為預設) DWORD dwStackSize, //新線程預設的堆棧大小 LPTHREAD_START_ROUTINE
ipStartAddress, //新線程的起始地址, 存放一個指標 LPVOID ipParameter, //此值將被傳入新線程中, 作為參數 DWORD dwCreatinFlags, //允許產生一個暫時掛起的線程, 預設是立即開始執行 LPDWORD ipThreadId //新線程的 id, 是一個全域變數, 可以獨一無二的表示系統任意進程的某個線程 ); */ //新線程 hThrd = CreateThread (NULL, 0, ThreadFunc, (LPVOID) i, 0, &threadId); //主線程 if (hThrd) { printf ("Thread launched %d \n", i); } } //等待線程 hThrd, 防止它提前結束 Sleep (2000); return EXIT_SUCCESS;}DWORD WINAPI ThreadFunc (LPVOID n){ for (int i = 0; i < 10; ++i) { printf ("%d%d%d%d%d%d%d%d\n", n, n, n, n, n, n, n, n); } return 0;}
迎面一個小例子