国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++ 多線程編程

2019-11-11 05:04:25
字體:
來源:轉載
供稿:網友

創(chuàng)建線程的API函數(shù)

復制代碼一、Windows系統(tǒng)為我們提供的API
HANDLE CreateThread(    LPSECURITY_ATTRIBUTES lpThreadAttributes,//SD:線程安全相關的屬性,常置為NULL    SIZE_T dwStackSize,//initialstacksize:新線程的初始化棧的大小,可設置為0    LPTHREAD_START_ROUTINE lpStartAddress,//threadfunction:被線程執(zhí)行的回調函數(shù),也稱為線程函數(shù)    LPVOID lpParameter,//threadargument:傳入線程函數(shù)的參數(shù),不需傳遞參數(shù)時為NULL    DWord dwCreationFlags,//creationoption:控制線程創(chuàng)建的標志    LPDWORD lpThreadId//threadidentifier:傳出參數(shù),用于獲得線程ID,如果為NULL則不返回線程ID    )/*lpThreadAttributes:指向SECURITY_ATTRIBUTES結構的指針,決定返回的句柄是否可被子進程繼承,如果為NULL則表示返回的句柄不能被子進程繼承。dwStackSize:設置初始棧的大小,以字節(jié)為單位,如果為0,那么默認將使用與調用該函數(shù)的線程相同的棧空間大小。任何情況下,Windows根據(jù)需要動態(tài)延長堆棧的大小。lpStartAddress:指向線程函數(shù)的指針,函數(shù)名稱沒有限制,但是必須以下列形式聲明:DWORD WINAPI 函數(shù)名 (LPVOID lpParam) ,格式不正確將無法調用成功。lpParameter:向線程函數(shù)傳遞的參數(shù),是一個指向結構的指針,不需傳遞參數(shù)時,為NULL。dwCreationFlags:控制線程創(chuàng)建的標志,可取值如下:(1)CREATE_SUSPENDED(0x00000004):創(chuàng)建一個掛起的線程(就緒狀態(tài)),直到線程被喚醒時才調用(2)0:表示創(chuàng)建后立即激活。(3)STACK_SIZE_PARAM_IS_A_RESERVATION(0x00010000):dwStackSize參數(shù)指定初始的保留堆棧的大小,如果STACK_SIZE_PARAM_IS_A_RESERVATION標志未指定,dwStackSize將會設為系統(tǒng)預留的值lpThreadId:保存新線程的id返回值:函數(shù)成功,返回線程句柄,否則返回NULL。如果線程創(chuàng)建失敗,可通過GetLastError函數(shù)獲得錯誤信息。*/BOOL WINAPI CloseHandle(HANDLE hObject);        //關閉一個被打開的對象句柄/*可用這個函數(shù)關閉創(chuàng)建的線程句柄,如果函數(shù)執(zhí)行成功則返回true(非0),如果失敗則返回false(0),如果執(zhí)行失敗可調用GetLastError.函數(shù)獲得錯誤信息。*/
二、MFC創(chuàng)建線程函數(shù)

 用戶界面線程和工作者線程都是由AfxBeginThread創(chuàng)建的。MFC提供了兩個重載版的AfxBeginThread,一個用于工作者線程,另一個用于用戶界面線程,分別有如下的原型和過程:

工作者線程的AfxBeginThread的原型如下:CWinThread* AFXAPI AfxBeginThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam,int nPriority, UINT nStackSize, DWORD dwCreateFlags,LPSECURITY_ATTRIBUTES lpSecurityAttrs)其中:參數(shù)1  線程的入口函數(shù),聲明一定要如下: UINT MyThreadFunction( LPVOID pParam );參數(shù)2 傳遞入線程的參數(shù),注意它的類型為:LPVOID,所以我們可以傳遞一個結構體入線程.參數(shù)3、4、5分別指定線程的優(yōu)先級、堆棧大小、創(chuàng)建標識、安全屬性,含義同用戶界面線程。用戶界面線程的AfxBeginThread的原型如下:CWinThread* AFXAPI AfxBeginThread(CRuntimeClass* pThreadClass,int nPriority, UINT nStackSize, DWORD dwCreateFlags,LPSECURITY_ATTRIBUTES lpSecurityAttrs)其中:參數(shù)1是從CWinThread派生的RUNTIME_CLASS類;參數(shù)2指定線程優(yōu)先級,如果為0,則與創(chuàng)建該線程的線程相同;參數(shù)3指定線程的堆棧大小,如果為0,則與創(chuàng)建該線程的線程相同;參數(shù)4是一個創(chuàng)建標識,如果是CREATE_SUSPENDED,則在懸掛狀態(tài)創(chuàng)建線程,在線程創(chuàng)建后線程掛起,否則線程在創(chuàng)建后開始線程的執(zhí)行。參數(shù)5表示線程的安全屬性,NT下有用。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 黄骅市| 广德县| 安达市| 康保县| 扬中市| 罗甸县| 明水县| 南召县| 资溪县| 北票市| 卢氏县| 新沂市| 杭锦旗| 南岸区| 霍州市| 丹东市| 宾阳县| 务川| 当阳市| 时尚| 锦州市| 奉节县| 福鼎市| 微博| 五指山市| 康保县| 浦城县| 宜良县| 卢龙县| 安新县| 扶余县| 溧阳市| 交口县| 河津市| 交口县| 四会市| 浪卡子县| 庆云县| 乌鲁木齐县| 庐江县| 岳池县|