程序分析:創建一個子線程,當主線程開始運行的時候,子線程同時開始執行,由於資源有限(如本程序中的屏幕打印),子線程和主線程執行速度不同,因此會隨機交替執行。如果希望子線程和主線程有序的交替執行的話,可以加一個互斥鎖。
// threadTest.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include <Windows.h> #include <iostream> using namespace std; HANDLE hMutex = NULL;//互斥量 DWORD WINAPI Fun(LPVOID lpParamter) { for (int i = 0; i < 10; i++) { //請求一個互斥鎖 WaitForSingleObject(hMutex,INFINITE); cout << "A Thread Fun Display!\n" ; //釋放互斥鎖 ReleaseMutex(hMutex); } return 0L; } int main() { //創建一個子線程 HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL); hMutex = CreateMutex(NULL, FALSE, L"screen"); CloseHandle(hThread); for (int i = 0; i < 10; i++) { WaitForSingleObject(hMutex,INFINITE); cout << "Main Thread Display!\n"; //釋放互斥鎖 ReleaseMutex(hMutex); } return 0; }
運行結果: