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

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

c++ 多線程編程

2019-11-11 03:58:29
字體:
供稿:網(wǎng)友

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

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

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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 许昌市| 柯坪县| 澎湖县| 林西县| 渑池县| 诏安县| 武功县| 安阳市| 阿尔山市| 英德市| 缙云县| 澄迈县| 武邑县| 朝阳市| 萍乡市| 龙泉市| 游戏| 阳高县| 读书| 小金县| 沂南县| 洪洞县| 三亚市| 霍州市| 奈曼旗| 万载县| 昌吉市| 榆树市| 新昌县| 台江县| 扎鲁特旗| 三门县| 乐安县| 嘉禾县| 宁陕县| 商洛市| 芜湖市| 小金县| 方山县| 孟州市| 彩票|