久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 同步與異步的區別詳解

同步與異步的區別詳解 時間:2018-08-14      來源:未(wei)知

進程同步用來(lai)實現(xian)程序并發執行(xing)時候的可再(zai)現(xian)性。

一.進程(cheng)同步及異步的概念(nian)

1.進程同步:就是在發出一(yi)個功能調用時,在沒有得(de)到結(jie)果之前,該調用

就(jiu)不返(fan)回。也就(jiu)是必須一(yi)件(jian)一(yi)件(jian)事(shi)做,等(deng)前一(yi)件(jian)做完了才(cai)能(neng)做下(xia)一(yi)件(jian)事(shi).就(jiu)像早(zao)上(shang)起(qi)床后,先洗涮(shuan),然后才(cai)能(neng)吃飯(fan),不能(neng)在洗涮(shuan)沒有完成(cheng)時(shi),就(jiu)開(kai)始(shi)吃飯(fan).按照這個(ge)定(ding)義,其(qi)實(shi)絕大多數(shu)函數(shu)都是同步調用(例如sin,isdigit等(deng))。但是一(yi)般而言,我們(men)在說同步、異步的時(shi)候,特指那些需要其(qi)他部件(jian)協作或者需要一(yi)定(ding)時(shi)間完成(cheng)的任務。最常(chang)見的例子就(jiu)是

sendmessage。該(gai)函(han)(han)數(shu)發送(song)一個消息給(gei)某個窗口,在對方處理完消息之(zhi)前,這個函(han)(han)數(shu)不返回。當對方處理完畢以后,該(gai)函(han)(han)數(shu)才把(ba)消息處理函(han)(han)數(shu)所返回的lresult值返回給(gei)調用者。

2.異步

異步(bu)的概(gai)念(nian)和同步(bu)相(xiang)對。當一個(ge)異步(bu)過(guo)程調用發(fa)出后(hou),調用者(zhe)不能立刻得到結果(guo)。實際(ji)處理這個(ge)調用的部(bu)件在完成后(hou),通(tong)(tong)過(guo)狀態(tai)、通(tong)(tong)知和回調來(lai)通(tong)(tong)知調用者(zhe)。

以casycsocket類為例(注意,csocket從casyncsocket派(pai)生(sheng),但是其功能已經由

異步轉(zhuan)化為同步),當一(yi)個(ge)客戶端通(tong)過調用(yong)connect函數發(fa)出一(yi)個(ge)連接(jie)請求后(hou),調用(yong)者線程(cheng)立刻可以朝下運行。當連接(jie)真(zhen)正建立起來以后(hou),socket底(di)層會發(fa)送一(yi)個(ge)消息通(tong)知(zhi)該(gai)對象。

這里提到執行(xing)部(bu)件(jian)和(he)調(diao)(diao)用(yong)(yong)者(zhe)通過三種途(tu)徑返回(hui)結果:狀態(tai)、通知(zhi)(zhi)和(he)回(hui)調(diao)(diao)。可以使(shi)用(yong)(yong)哪(na)一種依賴于(yu)執行(xing)部(bu)件(jian)的(de)(de)實現,除非執行(xing)部(bu)件(jian)提供多(duo)種選擇,否則(ze)不受(shou)調(diao)(diao)用(yong)(yong)者(zhe)控制。如(ru)果執行(xing)部(bu)件(jian)用(yong)(yong)狀態(tai)來通知(zhi)(zhi),那么調(diao)(diao)用(yong)(yong)者(zhe)就需要每隔一定時間檢查(cha)一次,效(xiao)率(lv)就很低(有些初(chu)學多(duo)線程編程的(de)(de)人,總喜歡(huan)用(yong)(yong)一個(ge)循(xun)環去檢查(cha)某個(ge)變量(liang)的(de)(de)值,這其實是一種很嚴重的(de)(de)錯(cuo)誤(wu))。如(ru)果是使(shi)用(yong)(yong)通知(zhi)(zhi)的(de)(de)方式(shi),效(xiao)率(lv)則(ze)很高(gao),因(yin)為執行(xing)部(bu)件(jian)幾(ji)乎(hu)不需要做額外(wai)的(de)(de)操作。至于(yu)回(hui)調(diao)(diao)函數,其實和(he)通知(zhi)(zhi)沒太多(duo)區別。進程同步的(de)(de)基本(ben)概念

在計(ji)算機(ji)系統(tong)中,由(you)于資源(yuan)(yuan)(yuan)(yuan)有(you)限而導(dao)(dao)致了進(jin)程(cheng)(cheng)之間的(de)(de)(de)(de)資源(yuan)(yuan)(yuan)(yuan)競(jing)爭(zheng)和共享,因(yin)此(ci),進(jin)程(cheng)(cheng)的(de)(de)(de)(de)并(bing)發執(zhi)行不僅僅是用戶程(cheng)(cheng)序的(de)(de)(de)(de)執(zhi)行開始時間的(de)(de)(de)(de)隨機(ji)性和提高資源(yuan)(yuan)(yuan)(yuan)利用率的(de)(de)(de)(de)結果,也是資源(yuan)(yuan)(yuan)(yuan)有(you)限性導(dao)(dao)致資源(yuan)(yuan)(yuan)(yuan)的(de)(de)(de)(de)競(jing)爭(zheng)與共享對進(jin)程(cheng)(cheng)的(de)(de)(de)(de)執(zhi)行過程(cheng)(cheng)進(jin)行制約所造(zao)成的(de)(de)(de)(de)。那么,在進(jin)程(cheng)(cheng)的(de)(de)(de)(de)并(bing)發執(zhi)行過程(cheng)(cheng)中存在哪(na)些制約呢?

二(er).同(tong)步與異步傳輸:

1.異步傳輸

通常,異(yi)步傳(chuan)(chuan)輸是以字(zi)符(fu)為(wei)傳(chuan)(chuan)輸單位,每(mei)個字(zi)符(fu)都要(yao)附(fu)加 1 位起始位和 1 位停止位,以標記一(yi)(yi)個字(zi)符(fu)的開(kai)始和結束,并以此實現數據傳(chuan)(chuan)輸同步。所(suo)謂異(yi)步傳(chuan)(chuan)輸是指字(zi)符(fu)與字(zi)符(fu)(一(yi)(yi)個字(zi)符(fu)結束到(dao)下一(yi)(yi)個字(zi)符(fu)開(kai)始)之間(jian)的時間(jian)間(jian)隔是可變的,

并(bing)不需要嚴(yan)格地限制它(ta)們的時間(jian)關系。起始(shi)位(wei)對(dui)應(ying)于二進制值 0,以低電(dian)平表(biao)示,占用(yong)(yong) 1 位(wei)寬度(du)。停止(zhi)位(wei)對(dui)應(ying)于二進制值 1,以高電(dian)平表(biao)示,占用(yong)(yong) 1~2 位(wei)寬度(du)。一個字(zi)(zi)符占用(yong)(yong) 5~8位(wei),具(ju)體取決(jue)于數據所采用(yong)(yong)的字(zi)(zi)符集。例如(ru),電(dian)報(bao)碼字(zi)(zi)符

為(wei) 5 位(wei)(wei)、ASCII碼(ma)字(zi)符(fu)為(wei) 7 位(wei)(wei)、漢字(zi)碼(ma)則為(wei)8 位(wei)(wei)。此外,還要附加 1 位(wei)(wei)奇(qi)偶(ou)(ou)校(xiao)驗位(wei)(wei),可以選擇(ze)奇(qi)校(xiao)驗或偶(ou)(ou)校(xiao)驗方式對該字(zi)符(fu)實(shi)施簡單的(de)差(cha)錯控制。發送端與接收

端除了采用相(xiang)同的(de)數據格式(字符的(de)位數、停止位的(de)位數、有無校驗(yan)位及校驗(yan)方式等(deng))外(wai),還應當采用相(xiang)同的(de)傳(chuan)輸速(su)率(lv)。典型的(de)速(su)率(lv)有:9 600 b/s、19.2kb/s、56kb/s等(deng)。

異步傳(chuan)輸又稱為起止(zhi)式異步通信方式,其(qi)優點(dian)是簡單、可靠,適用于面向字

 符(fu)的、低(di)速(su)的異(yi)步通信(xin)場合。例如(ru),計(ji)算機與(yu)Modem之間(jian)的通信(xin)就是(shi)采用(yong)這種方式。它的缺點(dian)是(shi)通信(xin)開銷大,每(mei)傳(chuan)輸一個字(zi)符(fu)都要額外附(fu)加2~3位,通信(xin)效(xiao)(xiao)率(lv)比較(jiao)低(di)。例如(ru),在使用(yong)Modem上(shang)網時,普遍感覺速(su)度很慢,除了傳(chuan)輸速(su)率(lv)低(di)之外,與(yu)通信(xin)開銷大、通信(xin)效(xiao)(xiao)率(lv)低(di)也密切相關。

2. 同(tong)步(bu)傳輸(shu)

通常,同步(bu)傳(chuan)輸是(shi)以數據塊為傳(chuan)輸單位(wei)。每個數據塊的頭部和(he)尾部都(dou)要附加

一個特(te)殊的(de)(de)字符或比(bi)特(te)序列(lie)(lie),標記一個數據(ju)塊(kuai)的(de)(de)開始和(he)結束,一般還(huan)要(yao)附加一個校(xiao)驗序列(lie)(lie) (如16位(wei)或32位(wei)CRC校(xiao)驗碼),以便(bian)對數據(ju)塊(kuai)進行差(cha)錯控制。所謂同(tong)步(bu)傳(chuan)輸是指數據(ju)塊(kuai)與數據(ju)塊(kuai)之間(jian)的(de)(de)時間(jian)間(jian)隔是固定的(de)(de),必須(xu)嚴格(ge)地(di)規定它們的(de)(de)時間(jian)關系。

三.同(tong)步阻塞(sai)與(yu)異(yi)步阻塞(sai):

同(tong)步(bu)是阻塞模式,異步(bu)是非阻塞模式。

我的(de)理(li)解:同(tong)步是(shi)指兩個線(xian)程(cheng)的(de)運(yun)行(xing)是(shi)相關的(de),其中(zhong)一個線(xian)程(cheng)要阻塞等待另外一個線(xian)程(cheng)的(de)運(yun)行(xing)。異步的(de)意思是(shi)兩個線(xian)程(cheng)毫無(wu)相關,自(zi)己運(yun)行(xing)自(zi)己的(de)。

同步是指(zhi):發(fa)送方發(fa)出(chu)數據(ju)后,等接收方發(fa)回響應以后才發(fa)下一個數據(ju)包的通(tong)訊(xun)方式(shi)。

異步是指:發送方發出數據后,不等(deng)接收方發回(hui)響應,接著發送下個(ge)數據包的通訊方式(shi)。

舉個不(bu)太恰當的(de)例(li)子(zi),就像: SendMessage(...) TRACE0("just like send"); PostMessage(...)

TRACE0("just like WSASend using overlapped");

SendMessage是(shi)調用(yong)的時候不返回,等消息(xi)響(xiang)應后才(cai)執行TRACE0,這(zhe)就是(shi)同

步.

PostMessage是調用(yong)后(hou)馬上返回,不用(yong)消息響應就(jiu)執行TRACE0,這就(jiu)是異(yi)步(bu).

四.其它解釋(shi):

同步(bu)和異步(bu)的(de)區別(bie)

舉個例子:普(pu)通(tong)B/S模式(同(tong)步)AJAX技(ji)術(異步)

同(tong)步:提交請求­>等待服(fu)務器處理­>處理完畢(bi)返回這個期間客戶端瀏覽器不能干任(ren)何事

異步: 請求通過事件觸發­>服務(wu)器(qi)(qi)處(chu)理(li)(這是瀏覽器(qi)(qi)仍然可以作其他事情)­ >處(chu)理(li)完畢

同步就是你叫我(wo)(wo)去(qu)吃(chi)飯,我(wo)(wo)聽(ting)(ting)到(dao)了(le)就和你去(qu)吃(chi)飯;如果沒(mei)有聽(ting)(ting)到(dao),你就不停的叫,直到(dao)我(wo)(wo)告訴你聽(ting)(ting)到(dao)了(le),才(cai)一起去(qu)吃(chi)飯。

異步(bu)就是你(ni)叫(jiao)我,然后(hou)自己去吃(chi)飯,我得到(dao)消息后(hou)可能(neng)立即走(zou),也(ye)可能(neng)等到(dao)下班才(cai)去吃(chi)飯。

所(suo)以(yi),要我請(qing)你吃(chi)飯就用同步的方法,要請(qing)我吃(chi)飯就用異步的方法,這樣你可以(yi)省錢(qian)。

上一篇:arm學習筆記及嵌入式系統移植步驟詳解

下一篇:sqlite3數據庫詳細介紹,為sqlite3數據庫學習加速

熱點文章推薦
華(hua)清學員(yuan)就業榜(bang)單
高薪學員經(jing)驗(yan)分享
熱點新聞推(tui)薦
前臺專線:010-82525158 企業培(pei)訓洽(qia)談專線:010-82525379 院校(xiao)合(he)作洽(qia)談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部