中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中的多線程是什么

發布時間:2021-08-31 11:24:16 來源:億速云 閱讀:159 作者:chen 欄目:編程語言

這篇文章主要講解了“C++中的多線程是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++中的多線程是什么”吧!

  在Windows平臺,WindowsAPI提供了對多線程的支持。前面進程和線程的概念中我們提到,一個程序至少有一個線程,這個線程稱為主線程(mainthread),如果我們不顯示地創建線程,那我們產的程序就是只有主線程的間線程程序。

下面,我們看看Windows中線程相關的操作和方法:

  CreateThread與CloseHandle

  CreateThread用于創建一個線程,其函數原型如下:

  HANDLEWINAPICreateThread(

  LPSECURITY_ATTRIBUTESlpThreadAttributes,//線程安全相關的屬性,常置為NULL

  SIZE_TdwStackSize,//新線程的初始化棧在大小,可設置為0

  LPTHREAD_START_ROUTINElpStartAddress,//被線程執行的回調函數,也稱為線程函數

  LPVOIDlpParameter,//傳入線程函數的參數,不需傳遞參數時為NULL

  DWORDdwCreationFlags,//控制線程創建的標志

  LPDWORDlpThreadId//傳出參數,用于獲得線程ID,如果為NULL則不返回線程ID

  );

說明:

  lpThreadAttributes:指向SECURITY_ATTRIBUTES結構的指針,決定返回的句柄是否可被子進程繼承,如果為NULL則表示返回的句柄不能被子進程繼承。

  dwStackSize:線程棧的初始化大小,字節單位。系統分配這個值對

  lpStartAddress:指向一個函數指針,該函數將被線程調用執行。因此該函數也被稱為線程函數(ThreadProc),是線程執行的起始地址,線程函數是一個回調函數,由操作系統在線程中調用。線程函數的原型如下:

  DWORDWINAPIThreadProc(LPVOIDlpParameter);//lpParameter是傳入的參數,是一個空指針

  lpParameter:傳入線程函數(ThreadProc)的參數,不需傳遞參數時為NULL

  dwCreationFlags:控制線程創建的標志,有三個類型,0:線程創建后立即執行線程;CREATE_SUSPENDED:線程創建后進入就緒狀態,直到線程被喚醒時才調用;STACK_SIZE_PARAM_IS_A_RESERVATION:dwStackSize參數指定線程初始化棧的大小,如果STACK_SIZE_PARAM_IS_A_RESERVATION標志未指定,dwStackSize將會設為系統預留的值。

  返回值:如果線程創建成功,則返回這個新線程的句柄,否則返回NULL。如果線程創建失敗,可通過GetLastError函數獲得錯誤信息。

  BOOLWINAPICloseHandle(HANDLEhObject);//關閉一個被打開的對象句柄可用這個函數關閉創建的線程句柄,如果函數執行成功則返回true(非0),如果失敗則返回false(0),如果執行失敗可調用GetLastError.函數獲得錯誤信息。

感謝各位的閱讀,以上就是“C++中的多線程是什么”的內容了,經過本文的學習后,相信大家對C++中的多線程是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

中西区| 开原市| 金川县| 逊克县| 菏泽市| 凌海市| 光山县| 桑植县| 罗源县| 房山区| 平远县| 长葛市| 嘉义县| 丹凤县| 喀喇沁旗| 文昌市| 大宁县| 上犹县| 河西区| 芦溪县| 甘洛县| 岗巴县| 高清| 化德县| 诸暨市| 呼玛县| 中牟县| 金溪县| 南昌县| 图们市| 英山县| 马鞍山市| 灵璧县| 吉林市| 房产| 大英县| 武城县| 东台市| 墨玉县| 滨州市| 新晃|