• <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   管理


            欧美综合天天夜夜久久| 久久精品国产99久久香蕉| 国色天香久久久久久久小说| 国内精品久久国产| 久久久久亚洲Av无码专| 国产精品内射久久久久欢欢| 久久亚洲国产最新网站| avtt天堂网久久精品| 久久国产视频99电影| 无码专区久久综合久中文字幕 | 色欲综合久久躁天天躁| 国产精品欧美亚洲韩国日本久久| 狠狠久久综合| 久久久久亚洲av综合波多野结衣| 久久精品国产亚洲av麻豆小说| 国产福利电影一区二区三区久久老子无码午夜伦不 | 欧美日韩中文字幕久久久不卡| 久久亚洲国产欧洲精品一| 国产精品久久久久无码av| 一级做a爰片久久毛片毛片| 欧美午夜A∨大片久久| 亚洲国产精品高清久久久| 精品精品国产自在久久高清| 国产精品久久新婚兰兰| 2021精品国产综合久久| 欧洲国产伦久久久久久久| 久久久久无码中| 亚洲色欲久久久综合网东京热| 51久久夜色精品国产| 怡红院日本一道日本久久 | 久久久久亚洲精品中文字幕| 久久久久久久精品妇女99| 国产精品视频久久| 亚洲av成人无码久久精品| 秋霞久久国产精品电影院| 久久精品国产日本波多野结衣| 久久久久亚洲AV成人网人人网站| 久久天天躁狠狠躁夜夜网站| 久久久久亚洲av成人无码电影| 久久99热精品| 久久综合给合久久狠狠狠97色69|