windows多執行緒之CreateThread

2021-06-22 00:13:07 字數 761 閱讀 4424

進來要進行多執行緒的編寫,複習一下windows多執行緒。首先從最基礎的createthread開始學起。

首先看一下函式原型:

handle createthread(     psecurity_attributes psa,    

dword cbstacksize,    

pthread_start_routine pfnstartaddr,  

pvoid pvparam,     

dword dwcreateflags,     

pdword pdwthrea)

引數含義如下:

psa:安全屬性,是指向security_attributes的指標。null取預設。

cbstacksize:該執行緒申請的棧空間。

dwcreateflags:控制新執行緒的額外資訊,以後會有說明。

pdwthreadid:儲存系統分配給新執行緒的id。

下面看乙個具體的例子。

#include

#include

using namespace std;

dword winapi firstthread(pvoid pvparam)

int main()

這段程式可以先想想一下輸出可能是什麼。在我的電腦上執行的結果如下:

從中可以看出新執行緒的執行時間和主線程的關係。這裡要注意的是這個程式時可能出錯的。當由於某種原因主線程退出的時候會將x的棧空間刪除,如果這時候才進入新執行緒的話那麼x是已經不存在的。編寫時請注意這種情況

windows多執行緒程式設計之原子操作

volatile關鍵字 多個執行緒對同乙個變數進行讀寫操作時,需要原子操作,保證資料的正確性。常用的原子操作函式包括 返回變數執行增減操作之後的值 winbaseapi long winapi interlockedincrement inout long volatile lpaddend win...

多執行緒之二,windows下的多執行緒 基礎

如下 thread.cpp win32執行緒庫,目前只能是演示的強度 作者 galphy 2005 6 20 推薦使用ide dev c 基於g 輕巧 include include typedef unsigned long stdcall threadfunc void class thread...

多執行緒之執行緒同步

pulse lockobj 表示釋放當前被lock的lockobj,容許其他執行緒呼叫。相當於暫時掛起當前執行緒 wait lockobj 表示等待當前被其他執行緒占用的lockobj。下面的 將會交替執行兩個執行緒 class ticktock console.write tick monitor...