亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mfc教程_ mfc的進(jìn)程和線程.htm

?? MFC的教程。 包括: MFC教程_ 概述.files MFC教程_ MFC和Win32.files MFC教程_ CObject類.files MFC教程_ 消息映射的實(shí)現(xiàn).files
?? HTM
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0041)http://www.vczx.com/tutorial/mfc/mfc8.php -->
<HTML><HEAD><TITLE>MFC教程_ MFC的進(jìn)程和線程</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2668" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<OL start=8>
  <P align=justify>
  <LI><A name=_Toc445889076></A><A name=_Toc445782479></A><A 
  name=_Toc452640940></A><A name=_Toc457299038></A><B>MFC的進(jìn)程和線程</B> 
  <P></P>
  <OL>
    <P align=justify>
    <LI><B><A name=_Toc445889077></A><A name=_Toc445782480></A><A 
    name=_Toc452640941></A><A name=_Toc457299039></A>Win32的進(jìn)程和線程概念</B> 
    <P></P></LI></OL></LI></OL>
<P 
align=justify>進(jìn)程是一個(gè)可執(zhí)行的程序,由私有虛擬地址空間、代碼、數(shù)據(jù)和其他操作系統(tǒng)資源(如進(jìn)程創(chuàng)建的文件、管道、同步對(duì)象等)組成。一個(gè)應(yīng)用程序可以有一個(gè)或多個(gè)進(jìn)程,一個(gè)進(jìn)程可以有一個(gè)或多個(gè)線程,其中一個(gè)是主線程。</P>
<P 
align=justify>線程是操作系統(tǒng)分時(shí)調(diào)度分配CPU時(shí)間的基本實(shí)體。一個(gè)線程可以執(zhí)行程序的任意部分的代碼,即使這部分代碼被另一個(gè)線程并發(fā)地執(zhí)行;一個(gè)進(jìn)程的所有線程共享它的虛擬地址空間、全局變量和操作系統(tǒng)資源。</P>
<P align=justify>之所以有線程這個(gè)概念,是因?yàn)橐跃€程而不是進(jìn)程為調(diào)度對(duì)象效率更高:</P>
<UL>
  <P align=justify>
  <LI>由于創(chuàng)建新進(jìn)程必須加載代碼,而線程要執(zhí)行的代碼已經(jīng)被映射到進(jìn)程的地址空間,所以創(chuàng)建、執(zhí)行線程的速度比進(jìn)程更快。 
  <P></P>
  <P align=justify></P>
  <LI>一個(gè)進(jìn)程的所有線程共享進(jìn)程的地址空間和全局變量,所以簡(jiǎn)化了線程之間的通訊。 
  <P></P></LI></UL>
<OL>
  <OL>
    <P align=justify>
    <LI><A name=_Toc445889078></A><A name=_Toc445782481></A><A 
    name=_Toc452640942></A><A name=_Toc457299040></A><B>Win32的進(jìn)程處理簡(jiǎn)介</B> 
    <P></P>
    <P align=justify>因?yàn)镸FC沒有提供類處理進(jìn)程,所以直接使用了Win32 API函數(shù)。</P>
    <OL>
      <P align=justify>
      <LI><A name=_Toc445889079></A><A name=_Toc445782482></A><A 
      name=_Toc452640943></A><A name=_Toc457299041></A><B>進(jìn)程的創(chuàng)建</B> 
      <P></P>
      <P align=justify>調(diào)用CreateProcess函數(shù)創(chuàng)建新的進(jìn)程,運(yùn)行指定的程序。CreateProcess的原型如下:</P>
      <P align=justify>BOOL CreateProcess(</P>
      <P align=justify>LPCTSTR lpApplicationName,</P>
      <P align=justify>LPTSTR lpCommandLine,</P>
      <P align=justify>LPSECURITY_ATTRIBUTES lpProcessAttributes,</P>
      <P align=justify>LPSECURITY_ATTRIBUTES lpThreadAttributes,</P>
      <P align=justify>BOOL bInheritHandles,</P>
      <P align=justify>DWORD dwCreationFlags,</P>
      <P align=justify>LPVOID lpEnvironment,</P>
      <P align=justify>LPCTSTR lpCurrentDirectory,</P>
      <P align=justify>LPSTARTUPINFO lpStartupInfo,</P>
      <P align=justify>LPPROCESS_INFORMATION lpProcessInformation</P>
      <P align=justify>);</P>
      <P align=justify>其中:</P>
      <P align=justify>lpApplicationName指向包含了要運(yùn)行模塊名字的字符串。</P>
      <P align=justify>lpCommandLine指向命令行字符串。</P>
      <P align=justify>lpProcessAttributes描述進(jìn)程的安全性屬性,NT下有用。</P>
      <P align=justify>lpThreadAttributes描述進(jìn)程初始線程(主線程)的安全性屬性,NT下有用。</P>
      <P 
      align=justify>bInHeritHandles表示子進(jìn)程(被創(chuàng)建的進(jìn)程)是否可以繼承父進(jìn)程的句柄。可以繼承的句柄有線程句柄、有名或無(wú)名管道、互斥對(duì)象、事件、信號(hào)量、映像文件、普通文件和通訊端口等;還有一些句柄不能被繼承,如內(nèi)存句柄、DLL實(shí)例句柄、GDI句柄、URER句柄等等。</P>
      <P align=justify>子進(jìn)程繼承的句柄由父進(jìn)程通過命令行方式或者進(jìn)程間通訊(IPC)方式由父進(jìn)程傳遞給它。</P>
      <P 
      align=justify>dwCreationFlags表示創(chuàng)建進(jìn)程的優(yōu)先級(jí)類別和進(jìn)程的類型。創(chuàng)建進(jìn)程的類型分控制臺(tái)進(jìn)程、調(diào)試進(jìn)程等;優(yōu)先級(jí)類別用來(lái)控制進(jìn)程的優(yōu)先級(jí)別,分Idle、Normal、High、Real_time四個(gè)類別。</P>
      <P align=justify>lpEnviroment指向環(huán)境變量塊,環(huán)境變量可以被子進(jìn)程繼承。</P>
      <P align=justify>lpCurrentDirectory指向表示當(dāng)前目錄的字符串,當(dāng)前目錄可以繼承。</P>
      <P align=justify>lpStartupInfo指向StartupInfo結(jié)構(gòu),控制進(jìn)程的主窗口的出現(xiàn)方式。</P>
      <P 
      align=justify>lpProcessInformation指向PROCESS_INFORMATION結(jié)構(gòu),用來(lái)存儲(chǔ)返回的進(jìn)程信息。</P>
      <P align=justify>從其參數(shù)可以看出創(chuàng)建一個(gè)新的進(jìn)程需要指定什么信息。</P>
      <P 
      align=justify>從上面的解釋可以看出,一個(gè)進(jìn)程包含了很多信息。若進(jìn)程創(chuàng)建成功的話,返回一個(gè)進(jìn)程信息結(jié)構(gòu)類型的指針。進(jìn)程信息結(jié)構(gòu)如下:</P>
      <P align=justify>typedef struct _PROCESS_INFORMATION {</P>
      <P align=justify>HANDLE hProcess; </P>
      <P align=justify>HANDLE hThread; </P>
      <P align=justify>DWORD dwProcessId; </P>
      <P align=justify>DWORD dwThreadId; </P>
      <P align=justify>}PROCESS_INFORMATION; </P>
      <P align=justify>進(jìn)程信息結(jié)構(gòu)包括進(jìn)程句柄,主線程句柄,進(jìn)程ID,主線程ID。</P>
      <P align=justify></P>
      <LI><A name=_Toc445889080></A><A name=_Toc445782483></A><A 
      name=_Toc452640944></A><A name=_Toc457299042></A><B>進(jìn)程的終止</B> 
      <P></P></LI></OL></LI></OL></OL>
<P align=justify>進(jìn)程在以下情況下終止:</P>
<UL>
  <P align=justify>
  <LI>調(diào)用ExitProcess結(jié)束進(jìn)程; 
  <P></P>
  <P align=justify></P>
  <LI>進(jìn)程的主線程返回,隱含地調(diào)用ExitProcess導(dǎo)致進(jìn)程結(jié)束; 
  <P></P>
  <P align=justify></P>
  <LI>進(jìn)程的最后一個(gè)線程終止; 
  <P></P>
  <P align=justify></P>
  <LI>調(diào)用TerminateProcess終止進(jìn)程。 
  <P></P>
  <P align=justify></P>
  <LI>當(dāng)要結(jié)束一個(gè)GDI進(jìn)程時(shí),發(fā)送WM_QUIT消息給主窗口,當(dāng)然也可以從它的任一線程調(diào)用ExitProcess。 
  <P></P></LI></UL>
<OL>
  <OL>
    <P align=justify>
    <LI><A name=_Toc445889081></A><A name=_Toc445782484></A><A 
    name=_Toc452640945></A><A name=_Toc457299043></A><B>Win32的線程</B> 
    <P></P>
    <OL>
      <P align=justify>
      <LI><B><A name=_Toc445889082></A><A name=_Toc445782485></A><A 
      name=_Toc452640946></A><A name=_Toc457299044></A>線程的創(chuàng)建</B> 
      <P></P></LI></OL></LI></OL></OL>
<P align=justify>使用CreateThread函數(shù)創(chuàng)建線程,CreateThread的原型如下:</P>
<P align=justify>HANDLE CreateThread(</P>
<P align=justify>LPSECURITY_ATTRIBUTES lpThreadAttributes,</P>
<P align=justify>DWORD dwStackSize,</P>
<P align=justify>LPTHREAD_START_ROUTINE lpStartAddress,</P>
<P align=justify>LPVOID lpParameter,</P>
<P align=justify>DWORD dwCreationFlags, // creation flags</P>
<P align=justify>LPDWORD lpThreadId</P>
<P align=justify>);</P>
<P align=justify>其中:</P>
<P align=justify>lpThreadAttributes表示創(chuàng)建線程的安全屬性,NT下有用。</P>
<P align=justify>dwStackSize指定線程棧的尺寸,如果為0則與進(jìn)程主線程棧相同。</P>
<P align=justify>lpStartAddress指定線程開始運(yùn)行的地址。</P>
<P align=justify>lpParameter表示傳遞給線程的32位的參數(shù)。</P>
<P 
align=justify>dwCreateFlages表示是否創(chuàng)建后掛起線程(取值CREATE_SUSPEND),掛起后調(diào)用ResumeThread繼續(xù)執(zhí)行。</P>
<P align=justify>lpThreadId用來(lái)存放返回的線程ID。</P>
<P align=justify></P>
<UL>
  <P align=justify>
  <LI>線程的優(yōu)先級(jí)別 
  <P></P></LI></UL>
<P 
align=justify>進(jìn)程的每個(gè)優(yōu)先級(jí)類包含了五個(gè)線程的優(yōu)先級(jí)水平。在進(jìn)程的優(yōu)先級(jí)類確定之后,可以改變線程的優(yōu)先級(jí)水平。用SetPriorityClass設(shè)置進(jìn)程優(yōu)先級(jí)類,用SetThreadPriority設(shè)置線程優(yōu)先級(jí)水平。</P>
<P align=justify>Normal級(jí)的線程可以被除了Idle級(jí)以外的任意線程搶占。</P>
<OL>
  <OL>
    <OL>
      <P align=justify>
      <LI><A name=_Toc445889083></A><A name=_Toc445782486></A><A 
      name=_Toc452640947></A><A name=_Toc457299045></A><B>線程的終止</B> 
      <P></P></LI></OL></OL></OL>
<P align=justify>以下情況終止一個(gè)線程:</P>
<UL>
  <P align=justify>
  <LI>調(diào)用了ExitThread函數(shù); 
  <P></P>
  <P align=justify></P>
  <LI>線程函數(shù)返回:主線程返回導(dǎo)致ExitProcess被調(diào)用,其他線程返回導(dǎo)致ExitThread被調(diào)用; 
  <P></P>
  <P align=justify></P>
  <LI>調(diào)用ExitProcess導(dǎo)致進(jìn)程的所有線程終止; 
  <P></P>
  <P align=justify></P>
  <LI>調(diào)用TerminateThread終止一個(gè)線程; 
  <P></P>
  <P align=justify></P>
  <LI>調(diào)用TerminateProcess終止一個(gè)進(jìn)程時(shí),導(dǎo)致其所有線程的終止。 
  <P></P></LI></UL>
<P 
align=justify>當(dāng)用TerminateProcess或者TerminateThread終止進(jìn)程或線程時(shí),DLL的入口函數(shù)DllMain不會(huì)被執(zhí)行(如果有DLL的話)。</P>
<OL>
  <OL>
    <OL>
      <P align=justify>
      <LI><A name=_Toc445889084></A><A name=_Toc445782487></A><A 
      name=_Toc452640948></A><A name=_Toc457299046></A><B>線程局部存儲(chǔ)</B> 
      <P></P></LI></OL></OL></OL>
<P align=justify>如果希望每個(gè)線程都可以有線程局部(Thread 
local)的靜態(tài)存儲(chǔ)數(shù)據(jù),可以使用TLS線程局部存儲(chǔ)技術(shù)。TLS為進(jìn)程分配一個(gè)TLS索引,進(jìn)程的每個(gè)線程通過這個(gè)索引存取自己的數(shù)據(jù)變量的拷貝。</P>
<P 
align=justify>TLS對(duì)DLL是非常有用的。當(dāng)一個(gè)新的進(jìn)程使用DLL時(shí),在DLL入口函數(shù)DllMain中使用TlsAlloc分配TLS索引,TLS索引就作為進(jìn)程私有的全局變量被保存;以后,當(dāng)該進(jìn)程的新的線程使用DLL時(shí)(Attahced 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱人伦一区二区| 国产欧美日产一区| 大胆欧美人体老妇| 亚洲国产精品久久久男人的天堂| 精品日本一线二线三线不卡| 91蝌蚪porny九色| 国产一区二区三区观看| 婷婷成人激情在线网| 国产精品久久久久久户外露出| 91精品国产综合久久精品图片| 成人av网站大全| 韩国精品主播一区二区在线观看| 亚洲一区二区欧美| 亚洲欧洲99久久| 国产日韩欧美制服另类| 玉足女爽爽91| 国产亚洲女人久久久久毛片| 91精品国产福利| 欧美视频在线一区二区三区 | 日韩二区在线观看| 亚洲图片你懂的| 国产精品久久看| 久久久久久久久99精品| 日韩精品在线一区二区| 欧美日韩国产影片| 欧美写真视频网站| 色婷婷久久久久swag精品| gogo大胆日本视频一区| 国产91对白在线观看九色| 国产综合色精品一区二区三区| 日韩成人一级大片| 日本v片在线高清不卡在线观看| 亚洲综合色丁香婷婷六月图片| 中文字幕一区二区在线播放| 久久精品在线观看| 国产亚洲污的网站| 国产日韩综合av| 国产日产精品一区| 国产欧美一二三区| 国产精品青草综合久久久久99| 国产午夜三级一区二区三| 国产午夜精品久久久久久免费视| 欧美大片免费久久精品三p| 欧美一区二区三区思思人| 91精品国产91综合久久蜜臀| 8v天堂国产在线一区二区| 欧美精品vⅰdeose4hd| 欧美日韩一卡二卡三卡 | 精品福利一二区| 精品日韩成人av| 久久久久99精品一区| 国产三级精品视频| 久久精品国产99久久6| 久久99国产精品麻豆| 精品一区精品二区高清| 国产九色精品成人porny| 岛国精品一区二区| 色综合咪咪久久| 欧美天天综合网| 91精品国产综合久久久蜜臀图片| 日韩免费电影网站| 国产视频一区二区三区在线观看| 国产精品国产三级国产| 悠悠色在线精品| 日韩二区三区在线观看| 国产美女精品人人做人人爽| 不卡区在线中文字幕| 欧美私人免费视频| 精品91自产拍在线观看一区| 日本一区二区三区免费乱视频| 亚洲男人天堂av| 日韩激情视频在线观看| 国产精品一区二区在线看| 99久久免费国产| 欧美美女黄视频| 国产三级一区二区| 亚洲福中文字幕伊人影院| 国内精品国产三级国产a久久| 成人高清视频在线观看| 在线看国产一区| 欧美大片在线观看| 亚洲欧洲精品成人久久奇米网| 日日夜夜一区二区| 国产成人在线观看免费网站| 在线观看亚洲a| 久久综合久久99| 91精彩视频在线观看| 欧美一区二区精美| 国产精品入口麻豆九色| 日韩电影一二三区| 成人激情黄色小说| 日韩精品一区二区三区在线 | 一区二区三区精品在线观看| 日本成人在线视频网站| 99精品久久只有精品| 欧美一级二级三级蜜桃| 亚洲色图另类专区| 国产一区二区三区高清播放| 色欧美乱欧美15图片| 久久久久久久精| 日韩精品一级二级 | 中文乱码免费一区二区| 免费一级欧美片在线观看| 99精品视频在线观看免费| 精品久久久久久无| 丝袜美腿成人在线| 色综合咪咪久久| 国产精品你懂的在线欣赏| 久久丁香综合五月国产三级网站| 欧美制服丝袜第一页| 中文字幕人成不卡一区| 韩国精品久久久| 亚洲国产精品久久人人爱蜜臀| 成人一区二区三区在线观看| 精品美女被调教视频大全网站| 亚洲香蕉伊在人在线观| 91尤物视频在线观看| 国产情人综合久久777777| 久久爱www久久做| 欧美精品色一区二区三区| 亚洲一区二区视频| 99riav久久精品riav| 欧美激情一区二区三区全黄| 国产最新精品免费| 26uuu色噜噜精品一区二区| 爽好多水快深点欧美视频| 欧美性感一区二区三区| 一区二区三区蜜桃| 色婷婷av一区二区三区gif| 国产精品电影院| av影院午夜一区| 国产精品国产三级国产普通话蜜臀| 国产一区二区三区精品欧美日韩一区二区三区 | 精品日韩一区二区三区| 卡一卡二国产精品| 日韩欧美色电影| 国产在线日韩欧美| 久久久久9999亚洲精品| 国产精品99久久久| 欧美激情一区二区在线| 不卡一卡二卡三乱码免费网站| 国产精品国产三级国产普通话三级 | 亚洲v精品v日韩v欧美v专区| 在线国产亚洲欧美| 亚洲成国产人片在线观看| 69成人精品免费视频| 免费观看日韩av| 久久奇米777| 东方aⅴ免费观看久久av| 中文字幕亚洲欧美在线不卡| 99精品在线观看视频| 亚洲国产日韩综合久久精品| 欧美精品 日韩| 激情综合网av| 国产精品久久久久影视| 色悠悠久久综合| 日韩精品国产欧美| 欧美精品一区二区三区在线| 粉嫩aⅴ一区二区三区四区| 中文字幕日韩欧美一区二区三区| 在线看一区二区| 日韩专区一卡二卡| 久久伊99综合婷婷久久伊| 91亚洲永久精品| 日韩电影免费在线| 欧美激情在线免费观看| 欧美性色黄大片| 国产一区二区三区在线看麻豆| 国产精品久久久久桃色tv| 欧美在线999| 加勒比av一区二区| 一区在线观看视频| 3atv一区二区三区| 成人午夜私人影院| 午夜激情一区二区三区| 国产日韩在线不卡| 欧美美女喷水视频| 波波电影院一区二区三区| 视频一区在线播放| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品女主播在线观看| 欧美日韩一区二区欧美激情| 国产乱码一区二区三区| 一区二区三区91| 久久人人超碰精品| 欧美日韩精品福利| 成人毛片在线观看| 免费人成精品欧美精品| 最近中文字幕一区二区三区| 日韩一区二区精品在线观看| 99久久国产综合精品色伊| 美女视频黄a大片欧美| 亚洲私人影院在线观看| 欧美videos中文字幕| 欧美午夜片在线观看| 东方aⅴ免费观看久久av| 奇米在线7777在线精品| 18成人在线观看| 久久久久国产精品人| 欧美一二三在线|