C 學習筆記 執行緒簡單應用

2021-07-01 23:44:27 字數 2052 閱讀 9063

對於執行緒,對於新手來說會覺得非常麻煩,實際上不是如此,其實很簡單,只是要注意執行緒的關閉和開啟。簡單的方法建立執行緒達到效果。

第一種方式:----mfc封裝好呼叫執行緒方式

對於執行緒,對於新手來說會覺得非常麻煩,實際上不是如此,其實很簡單,只是要注意執行緒的關閉和開啟。簡單的方法建立執行緒達到效果。

#include "commonitorthread.h"  // 引用執行緒

在按鈕的程式中新增

m_pmaindlg = (csignallampsettooldlg*)::afxgetmainwnd();

::afxbeginthread(clientthread,this);   //獲得執行緒程式clientthread() 設定此程式為執行緒程式,執行緒中一直執行此函式。

uint ccommonitorthread::clientthread(lpvoid lparam)//    lparam 為執行緒控制代碼。

第二種方式---非mfc封裝呼叫執行緒。

createthread

函式原型:

[cpp]view plain

copy

handle

createthread(  

lpsecurity_attributes lpthreadattributes, // sd

dword

dwstacksize,                       

// initial stack size

lpthread_start_routine lpstartaddress,   // thread function

lpvoid

lpparameter,                      

// thread argument

dword

dwcreationflags,                   

// creation option

lpdword

lpthreadid                       

// thread identifier

);  

此函式在其呼叫程序的程序空間裡建立乙個執行緒。

引數說明:

lpthreadattributes:指向security_attributes結構體,該結構體決定了函式返回控制代碼是否被子進執行緒繼承。

如果為null,則不能被繼承。

dwstacksize:指定了執行緒的堆疊大小,一般為0,使用預設的堆疊大小。

lpstartaddress:指向應用定義的執行緒函式,執行緒函式型別為lpthread_start_routine。此值代表執行緒的開始位址。

lpparameter:執行緒函式所帶的引數。是乙個指向結構的指標,不需傳遞引數時,為null。

dwcreateflags:執行緒標誌。如果指定為create_suspended,執行緒建立的時候的狀態為掛起狀態,

執行緒不會立即執行直到呼叫resumethread函式。

如果值為0,執行緒會立即執行。

lpthreadid:儲存新執行緒的id.

舉例:hthread = createthread(  

null,                                   // sd  

0,                                  // initial stack size  

(lpthread_start_routine)threadproc,    // thread function  

null,                                    // thread argument  

0,                                   // creation option  

&threadid                               // thread identifier  

);  

其中threadproc 為執行緒程式,你所需要執行的程式放在threadproc中就可以了。

C 執行緒學習筆記

執行緒等待 這個例子的目的是向控制台順序地輸出數字,從1到500.first 方法將會輸出前250個數字而second 方法將會輸出後250個。如果不在second 方法中加firstthread.join 的話,執行上下文將會在兩個方法之間來回切換,而我們的輸出會很亂 試著將這行 注釋掉,然後重新...

C 執行緒同步 (學習筆記)

1.利用mutex 互斥物件 2.利用event 事件物件 3.利用臨界區 critical section 效率更高 4.利用semaphore訊號量 filename semaphore test.cpp author jarvischu date 2012 11 22 include incl...

C 多執行緒學習筆記

一 基本概念 bi d.z9k l b 0 程序 當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。q7 j ka ik z b0 執行緒 執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 ...