• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            天空之城
            new,think,program,happy to live
            posts - 39,comments - 39,trackbacks - 0
            HANDLE ?
            ? ? ? ? ? 這其實(shí)是一個(gè)UINT(隨便提一下,初學(xué)者往往對(duì)VC代碼中各種古怪的符號(hào)、類(lèi)型標(biāo)記/宏等百思不得其解,其實(shí)它們大多來(lái)自基本類(lèi)型的#define或者typedef,請(qǐng)將光標(biāo)移到這些符號(hào)上(譬如HANDLE),然后按下F12,編譯器自會(huì)把你帶到它的聲明處,反復(fù)使用幾次,你終會(huì)見(jiàn)到它的原貌,然后長(zhǎng)吁一口氣:原來(lái)不過(guò)如此而已。沒(méi)用過(guò)的初學(xué)者請(qǐng)牢記:F12)。很多初學(xué)者把HANDLE與指針的理解混淆,總想知道一個(gè)HANDLE代表一個(gè)什么對(duì)象,我的建議是不要去理解為是某對(duì)象的指針,而就是理解為一個(gè)整數(shù)索引(事實(shí)上也是),就好像一個(gè)數(shù)組的下標(biāo)一樣。Windows系統(tǒng)核心中主要是幾張大表,這樣一個(gè)整數(shù)索引就是標(biāo)記目標(biāo)(窗口、線程、某DC資源等)在這個(gè)表中的位置,供操作系統(tǒng)訪問(wèn)時(shí)查詢用。 ?
            ? ?
            ? DLL ?
            ? ? ? ? ? DLL的一個(gè)特點(diǎn)就是可以動(dòng)態(tài)加載(顧名思義),即在主程序(我更喜歡稱為客戶程序)需要該模塊時(shí)才由操作系統(tǒng)加載到內(nèi)存。畢竟一個(gè)大型應(yīng)用程序我們經(jīng)常使用到的功能并不多,這樣一些不常用的功能模塊(DLL)在程序運(yùn)行時(shí)一般將不被載入,極大地節(jié)省了內(nèi)存開(kāi)銷(xiāo)。DLL同時(shí)也是目前最常用的分發(fā)模塊的方法,便于彼此協(xié)作。程序中對(duì)DLL的調(diào)用主要有兩種方法:1 ? 針對(duì)使用DEF文件導(dǎo)出函數(shù)的DLL,使用API函數(shù)LoadLibrary(“DLLModuleName")加載,然后使用GetProcAddress()得到函數(shù)指針,進(jìn)而調(diào)用 ? ? 2當(dāng)DLL編譯選項(xiàng)被設(shè)為“MFC擴(kuò)展DLL”時(shí),可以直接將類(lèi)、函數(shù)等導(dǎo)出,客戶程序使用同一份頭文件聲明,加入對(duì)應(yīng)的lib鏈接庫(kù),即可在客戶程序中直接使用DLL中的類(lèi)或函數(shù),無(wú)需LoadLibrary。 ? 注:關(guān)于DLL的三種形式(普通,MFC ? DLL,MFC ? 擴(kuò)展DLL)的區(qū)別我一時(shí)拿不真切,往知情者為我修正補(bǔ)全。

            關(guān)于"進(jìn)程\線程",在這里我談一些我個(gè)人的體會(huì)和理解作為補(bǔ)充,準(zhǔn)確定義請(qǐng)參考操作系統(tǒng)權(quán)威書(shū)籍 ?
            ? ?
            ? Process ? 進(jìn)程 ?
            ? ? ? ? ? 進(jìn)程不是一個(gè)靜態(tài)概念,所以它也不是"運(yùn)行的程序的實(shí)體",進(jìn)程是一個(gè)動(dòng)態(tài)的概念,包括從進(jìn)程的創(chuàng)建申請(qǐng),PCB(Process ? Control ? Block進(jìn)程控制塊,一般操作系統(tǒng)實(shí)現(xiàn)為一個(gè)表格)的創(chuàng)建,地址空間的內(nèi)存分配,模塊代碼載入并執(zhí)行,執(zhí)行完以后進(jìn)行撤銷(xiāo),整個(gè)過(guò)程被稱為"進(jìn)程"。在Win32下,一個(gè)進(jìn)程有4G的邏輯空間。 ?
            ? ?
            ? Thread ? 線程 ?
            ? ? ? ? ? 為了更有效的提高CPU的利用率,更好地實(shí)現(xiàn)多任務(wù)并發(fā),微軟將進(jìn)程進(jìn)行進(jìn)一步分割,實(shí)現(xiàn)了CPU任務(wù)調(diào)度的最小單位:線程。一個(gè)進(jìn)程擁有至少一個(gè)線程。我們?cè)趯?shí)現(xiàn)多任務(wù)并發(fā)的時(shí)候通常是建立一個(gè)線程(建立線程的系統(tǒng)開(kāi)銷(xiāo)要小于進(jìn)程),線程是以我們自己的一個(gè)函數(shù)作為入口,函數(shù)執(zhí)行完畢自動(dòng)撤銷(xiāo)(當(dāng)然你也可以在執(zhí)行過(guò)程中強(qiáng)制結(jié)束該線程)。順便提一下,在UNIX下并沒(méi)有線程這個(gè)概念,想來(lái)是因?yàn)閁NIX主要是以多進(jìn)程的并發(fā)服務(wù)為主(所以它更適合于做服務(wù)器),系統(tǒng)運(yùn)行時(shí)通常已經(jīng)有了太多的進(jìn)程,所以沒(méi)有必要再對(duì)進(jìn)程進(jìn)行細(xì)化,因?yàn)檫@樣做甚至?xí)档拖到y(tǒng)效率(CPU調(diào)度不過(guò)來(lái)),當(dāng)然,這是我個(gè)人的猜想:)
            posted on 2006-05-14 12:49 太極虎~宏 閱讀(116) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            国产亚洲成人久久| 国产三级观看久久| 91精品国产综合久久四虎久久无码一级| 99久久99久久| 久久影院午夜理论片无码| 久久久亚洲AV波多野结衣| 狠狠色噜噜狠狠狠狠狠色综合久久 | 人妻精品久久久久中文字幕一冢本| 久久青草国产手机看片福利盒子| 久久有码中文字幕| 久久青青国产| 日韩精品国产自在久久现线拍 | 伊人色综合久久天天| 国内精品伊人久久久久av一坑 | 久久99精品国产麻豆| 久久久久高潮综合影院| 亚洲午夜福利精品久久| 国内精品久久久久影院亚洲| 久久精品国产99国产精品| 久久婷婷午色综合夜啪| 亚洲精品97久久中文字幕无码| 嫩草影院久久99| 中文字幕亚洲综合久久| 久久人人爽人人爽AV片| 久久综合一区二区无码| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区| 无码人妻精品一区二区三区久久 | 久久精品国产清高在天天线| 久久丫精品国产亚洲av不卡| 国内精品久久久久久99| 久久男人中文字幕资源站| 狠狠色综合网站久久久久久久高清| 国产精品成人久久久| 很黄很污的网站久久mimi色| 久久九九兔免费精品6| 日本久久久精品中文字幕| 久久久人妻精品无码一区| 婷婷综合久久中文字幕蜜桃三电影| 国产日产久久高清欧美一区| 久久久久亚洲爆乳少妇无| 久久se精品一区精品二区|