隨著時代的發展,計算機技術發展得很快。CPU已經從單核心到多核心的轉變,也就是一個CPU裡具備了同時做多件事情的能力,而不是過去的分時復用了,而是實實在在地做多件事情。因此,開發軟件也進入了一個新時代,就是多線程軟件的開發時代。如何合理地分配多個線程同時運行,是提高軟件效率的關鍵因素了。比如像網絡游戲的客戶端裡,就可以使用一個線程不斷地更新游戲的界面,分配另外一個線程不斷地發送和接收網絡的數據,這樣CPU的兩個核心都在不斷地工作。如果還像以前那樣使用一個線程的話,就會發現只有一個內核在做事情。當然使用線程的編程模型,也會大大地簡化軟件的復雜性。下面就來使用線程的API函數。
函數CreateThread聲明如下:
WINBASEAPI
__out
HANDLE
WINAPI
CreateThread(
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in SIZE_T dwStackSize,
__in LPTHREAD_START_ROUTINE lpStartAddress,
__in_opt LPVOID lpParameter,
__in DWord dwCreationFlags,
__out_opt LPDWord lpThreadId
);
lpThreadAttributes是線程的屬性。
dwStackSize是線程的棧大小。
lpStartAddress是線程函數的開始地址。
lpParameter是傳送給線程函數的參數。