關(guān)鍵字: 同步 異步
同步在一定程度上可以看做是單線程,這個(gè)線程請(qǐng)求一個(gè)方法后就待這個(gè)方法給他回復(fù),否則他不往下執(zhí)行(死心眼)。
異步在一定程度上可以看做是多線程的(廢話,一個(gè)線程怎么叫異步),請(qǐng)求一個(gè)方法后,就不管了,繼續(xù)執(zhí)行其他的方法。
比如一個(gè)文章系統(tǒng)里面,文章內(nèi)容通常是字?jǐn)?shù)非常多的,如果數(shù)據(jù)量大,打開(kāi)會(huì)非常的慢,這個(gè)時(shí)候可以采取兩種方法:
1、死心眼:一直等待要顯示的數(shù)據(jù)全部取出來(lái)
標(biāo)題、作者、來(lái)源、創(chuàng)建時(shí)間、關(guān)鍵字、點(diǎn)擊次數(shù)、文章正文
ok,全部取出
顯示
碰上心急的用戶,他會(huì)罵死你的。
2、異步:首先顯示能夠快速取出的部分:
標(biāo)題、作者、來(lái)源、創(chuàng)建時(shí)間、關(guān)鍵字、點(diǎn)擊數(shù)
顯示
然后另外的一個(gè)線程等待取出文章的正文顯示!
異步就是:做一件事情的同事,不影響做其他的事情。
-----------------------------------------
轉(zhuǎn)帖一些文字:
所謂同步,可以理解為在執(zhí)行完一個(gè)函數(shù)或方法之后,一直等待系統(tǒng)返回值或消息,這時(shí)程序是出于阻塞的,只有接收到返回的值或消息后才往下執(zhí)行其他的命令。
異步,執(zhí)行完函數(shù)或方法后,不必阻塞性地等待返回值或消息,只需要向系統(tǒng)委托一個(gè)異步過(guò)程,那么當(dāng)系統(tǒng)接收到返回值或消息時(shí),系統(tǒng)會(huì)自動(dòng)觸發(fā)委托的異步過(guò)程,從而完成一個(gè)完整的流程。
并不是說(shuō)誰(shuí)好誰(shuí)不好,只是同步的機(jī)制不適合在正式應(yīng)用的項(xiàng)目當(dāng)中(但自己測(cè)試還是可以的)
同步,就是實(shí)時(shí)處理,比如服務(wù)器一接收客戶端請(qǐng)求,馬上響應(yīng),這樣客戶端可以在最短的時(shí)間內(nèi)得到結(jié)果,但是如果多個(gè)客戶端,或者一個(gè)客戶端發(fā)出的請(qǐng)求很頻繁,服務(wù)器無(wú)法同步處理,就會(huì)造成涌塞。
異步,就是分時(shí)處理,服務(wù)器接收到客戶端請(qǐng)求后并不是立即處理,而是等待服務(wù)器比較空閑的時(shí)候加以處理,可以避免涌塞。
同步和異步之分:
同步就是調(diào)用一個(gè)函數(shù),直接函數(shù)執(zhí)行完了才返回到調(diào)用函數(shù)
異步就是被調(diào)用函數(shù)初始化完后馬上返回。
----------
同步就是(我死心眼)我等你(給我回答),異步就是(我很忙)我不等你(給我回答)
嚴(yán)格的說(shuō),異步還是有兩種
一種是等,但是等的過(guò)程和同步不一樣,等的時(shí)候可以做別的工作,但是程序的主線還是等待 WaitforSingleObject(hEvent,INFINTE,TRUE);
另外一種是CALLBACK方式,這種異步是完全不等待,程序主線發(fā)出請(qǐng)求之后就干別的事情去了,完全不理會(huì)請(qǐng)求執(zhí)行的如何。
所有異步必然設(shè)計(jì)兩個(gè)以上的線程(不然不存在異步的問(wèn)題),第一種方式下,請(qǐng)求的后期工作是在發(fā)出請(qǐng)求的線程上執(zhí)行,第二種方式下,后期工作可以在任何線程(通常是執(zhí)行請(qǐng)求的線程上)完成。
posted on 2010-06-17 14:40
zoyi 閱讀(708)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
技術(shù)雜文