• <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
            ?? Callback ? Function: ? 回調(diào)函數(shù) ?
            ? ? ? ? ? 在侯sir的<<深入淺出>>中一開始就提出了這個(gè)概念,大概的提法是說回調(diào)函數(shù)是操作系統(tǒng)調(diào)用而你永遠(yuǎn)不要去調(diào)用的函數(shù)。這個(gè)提法讓初學(xué)者有點(diǎn)望而生畏,以為是一種多么高深而難以領(lǐng)會(huì)的系統(tǒng)底層的核心技術(shù)。其實(shí)不然,這個(gè)技術(shù)本質(zhì)很簡(jiǎn)單,而且很常用。它實(shí)質(zhì)就是函數(shù)指針的基本運(yùn)用(如果不知道什么是函數(shù)指針的話,翻翻書)。在一個(gè)模塊中,有時(shí)想讓一部分功能由其它模塊實(shí)現(xiàn),譬如說一個(gè)做顯示的模塊,它只想實(shí)現(xiàn)顯示的資源配備,畫面的刷新,縮放等,而把畫具體實(shí)體(譬如圓、多邊形)的代碼放到別的模塊來實(shí)現(xiàn),怎么辦呢?用函數(shù)指針。在自己的類中放一個(gè)畫圓的函數(shù)指針,使用時(shí)由外部為這個(gè)函數(shù)指針賦值(其實(shí)就是指向了一個(gè)外部的函數(shù)),在自己的代碼中直接調(diào)用這個(gè)函數(shù)指針來畫就可以了(本模塊完全不知道外部模塊是怎么畫圓的)。那個(gè)外部的函數(shù)在這里就是回調(diào)函數(shù)! ?
            ? ? ? ? ? 在很多系統(tǒng)API中就使用了這種函數(shù)回調(diào)的方法,讓我們開發(fā)的代碼實(shí)現(xiàn)可以嵌入到API的代碼實(shí)現(xiàn)當(dāng)中,其實(shí)我們就是傳了一個(gè)函數(shù)地址給它而已。換句話說,這些API搭好了某些運(yùn)行的代碼框架,我們來為它具體實(shí)現(xiàn)。在自己的代碼中這種技術(shù)也常常被用到。舉個(gè)典型的例子,寫COM(串口)讀寫代碼時(shí),常常單獨(dú)實(shí)現(xiàn)一個(gè)模塊來讀寫串口,而這個(gè)模塊則開放一個(gè)回調(diào)函數(shù)接口,使得每讀完若干字節(jié)數(shù)據(jù)(譬如說自定義通訊數(shù)據(jù)的一幀)就調(diào)用一次這個(gè)函數(shù),而這個(gè)函數(shù)是由上層調(diào)用模塊實(shí)現(xiàn)的,具體進(jìn)行數(shù)據(jù)的解析、處理。這就是回調(diào)。這有什么好處呢?實(shí)現(xiàn)了功能的分離,這個(gè)串口模塊會(huì)有良好的重用性。還不明白的話,請(qǐng)仔細(xì)想想:) ?
            ? ?
            ? ? ? ? ? 守護(hù)進(jìn)程 ?
            ? ? ? ? ? 這個(gè)概念我更拿不準(zhǔn)了。好像這是指從系統(tǒng)開始一直到系統(tǒng)結(jié)束一直在運(yùn)行,長(zhǎng)駐內(nèi)存的線程。譬如說Win32的很多服務(wù)進(jìn)程,都可以稱作守護(hù)進(jìn)程。守護(hù)進(jìn)程往往會(huì)獲得較高的系統(tǒng)核心等級(jí),使得不容易被kill掉。因其特點(diǎn),一些病毒,監(jiān)控程序往往實(shí)現(xiàn)為守護(hù)進(jìn)程。當(dāng)然,這絕不是把程序放到“啟動(dòng)”中可以實(shí)現(xiàn)的,那個(gè)時(shí)候啟動(dòng),已經(jīng)太晚。我猜想(沒真正做過)要實(shí)現(xiàn)的話,可以注入到一些系統(tǒng)核心DLL里,一旦這些DLL啟動(dòng)時(shí)激活自己的進(jìn)程,或者實(shí)現(xiàn)為Windows的服務(wù)進(jìn)程,常規(guī)編程里很少使用到這個(gè)技術(shù)。
            posted on 2006-05-14 12:58 太極虎~宏 閱讀(131) 評(píng)論(0)  編輯 收藏 引用

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


            青青青青久久精品国产h| 久久久久久久久久久精品尤物 | MM131亚洲国产美女久久| 国产韩国精品一区二区三区久久| 久久婷婷综合中文字幕| 久久性生大片免费观看性| 国内高清久久久久久| www亚洲欲色成人久久精品| 久久久久久伊人高潮影院| 色综合合久久天天综合绕视看 | 久久综合久久综合久久综合| 久久久久久青草大香综合精品| 偷偷做久久久久网站| 久久国产精品-国产精品| 狠狠色丁香久久婷婷综合图片| 国产91色综合久久免费| 精品久久久久成人码免费动漫| 四虎国产精品免费久久久| 伊人久久大香线焦AV综合影院 | 久久国产欧美日韩精品| 亚洲国产成人久久精品影视| 亚洲精品无码久久久久| 久久久久亚洲爆乳少妇无| 久久er99热精品一区二区| 久久综合五月丁香久久激情| 国产AV影片久久久久久| 久久精品九九亚洲精品| 久久伊人精品一区二区三区| 久久伊人五月天论坛| 精品久久久久久无码中文字幕 | 91精品婷婷国产综合久久| 久久精品中文騷妇女内射| 亚洲AV无码1区2区久久| 国内精品人妻无码久久久影院导航 | 久久精品国产福利国产秒| 久久综合精品国产二区无码| 久久精品国产清自在天天线| 日本精品久久久久影院日本| 久久久久黑人强伦姧人妻| 无码任你躁久久久久久老妇| 亚洲国产香蕉人人爽成AV片久久 |