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

2021-09-10 17:02:24 字數 741 閱讀 4686

volatile關鍵字

多個執行緒對同乙個變數進行讀寫操作時,需要原子操作,保證資料的正確性。

常用的原子操作函式包括:

返回變數執行增減操作之後的值 

winbaseapi

long

winapi

interlockedincrement (

__inout long volatile *lpaddend

);winbaseapi

long

winapi

interlockeddecrement (

__inout long volatile *lpaddend

);

返回運算後的值,注意!加個負數就是減。

winbaseapi

long

winapi

interlockedexchangeadd (

__inout long volatile *addend,

__in long value

);

winbaseapi

long

winapi

interlockedexchange (

__inout long volatile *target,

__in long value

);

value就是新值,函式會返回原先的值。

Windows多執行緒程式設計(7) 原子操作

今天介紹一種低層次的多執行緒同步機制 原子操作 atomic operation 原子操作保證同一時間只能有乙個執行緒對某個變數進行操作。通常一條c c 語句對應多個彙編指令,而處理器的中斷可能發生在任意一條彙編指令處。因此,當乙個執行緒訪問某個變數時,可能會有另乙個執行緒也在訪問,這就造成了資料的...

windows多執行緒之CreateThread

進來要進行多執行緒的編寫,複習一下windows多執行緒。首先從最基礎的createthread開始學起。首先看一下函式原型 handle createthread psecurity attributes psa,dword cbstacksize,pthread start routine pf...

Windows多執行緒程式設計

一 問題的提出 編寫乙個耗時的單執行緒程式 新建乙個基於對話方塊的應用程式singlethread,在主對話方塊idd singlethread dialog新增乙個按鈕,id為idc sleep six second,標題為 延時6秒 新增按鈕的響應函式,如下 void csinglethread...