什么是同步通信和異步通信,簡述異步通信的概念

大家好,感謝邀請,今天來為大家分享一下什么是同步通信和異步通信的問題,以及和簡述異步通信的概念的一些困惑,大家要是還不太明白的話,也沒有關系,因為接下來將為大家分享,希...
大家好,感謝邀請,今天來為大家分享一下什么是同步通信和異步通信的問題,以及和簡述異步通信的概念的一些困惑,大家要是還不太明白的話,也沒有關系,因為接下來將為大家分享,希望可以幫助到大家,解決大家的問題,下面就開始吧!
兩個設備同步的原理
分布式數據庫互備
分布式應用配置同步
多設備應用數據同步
本文想借此展開相關的理論和實例來深入研究一下數據同步問題。
數據同步理論
同步方式
同步客戶端服務器(SynchronousClient-Server,S-CS)
應用直接和遠程服務通訊,將數據同步
實例:微信發送一條消息,只有消息發送完成過后才會存儲在本地消息發送成功列表中,未發送成功會提示重新發送
異步客戶端服務器(AsynchronousClient-Server,A-CS)
應用將數據保存在本地,應用保持本地數據和遠程數據的同步(后臺運行)
實例:MacQuickTime錄制了一段視頻,存儲在文件系統中,iCoud自動將文件系統中的數據同步到云端
異步對等方式(AsynchronousPeer-to-Peer,A-P2P)
應用數據保存在本地,應用保持本地數據和其他端的數據同步,每個端存儲數據的完成備份,服務器端不存在備份。
數據同步要素
識別
對象識別需要使用全局標識符uuids(universaalyUniqueidentifiers)
變化追蹤
描述算法如何確定自上一次數據同步后,數據發生了哪些變化,然后本地存儲應該如何修改。
顆粒大小:當某個屬性字段被修改過后,確定追蹤這個字段還是追蹤整個實例
記錄變化:是否變化簡單情況可以用一個Boolean的標示來表示,也可能需要用日志來記錄變化并附加時間戳
軟刪除:
沖突解決
當多端都在共同修改一個實例的時候,就會出現沖突。
簡單情況:讀寫被認為是原子操作,解決沖突可以看成選擇什么版本的存儲。如iCloud出現沖突時,應用提示用戶選擇文檔的什么版本
變化優先級策略:
最近一次的同步操作確定級別最高,所有這一次同步操作的變化覆蓋之前存儲的數據,
最近一次修改時間戳確定優先級別
避免隨機策略,總是保證一致的選擇策略
對等同步通訊(S-P2P)
假設我們有一個像iTunes那樣的Mac應用程序,它可以通過USB、藍牙或者Wi-Fi和iPhone進行同步通訊。(憑借快速的本地網絡,我們不用太在意限制數據傳輸大小)
第一步:當iPhone第一次同步的時候,兩個應用程序通過Bonjour發現對方,然后Mac應用程序將它的所有存儲數據壓縮,通過套接字將壓縮后的文件傳遞給iPhone應用程序,然后iPhone將其解壓并安裝。
第二步:現在假設用戶使用iPhone對已經存在的對象做了修改(比如,給一首歌打了星級)。該設備上的應用程序給該對象設置了一個Boolean型的標記(比如,changedSinceSync),用來表示該對象是新的還是已經被修改過的。
第三步:當下一次同步發生的時候,iPhone應用程序將它的所有數據存儲壓縮并回發給Mac。Mac裝載這些數據,尋找被修改的實例,然后更新它自己對應的數據。然后Mac又將更新后的數據存儲的完整拷貝發送給iPhone,用來替代iPhone已經存在的數據存儲,然后整個流程又重新開始。
總結來說,同步操作需要設備能夠向其他設備傳輸數據,并且能夠決定哪些被修改、合并,然后回傳更新后的數據。保證了這兩個設備同步之后具有相同的數據,所以,有很強的健壯性。
客戶端-服務器同步通訊(S-CS)
當加入了服務器的時候,服務器是為了能夠更加靈活地同步數據,但是它是以數據傳輸和存儲為代價的。需要盡可能地減少通訊開銷,所以來回地拷貝整個數據是不可行的。
前置條件:假設數據存儲在服務器上的數據庫中,并且每一個對象都有一個最后更新的時間戳。
第一步:當客戶端程序第一次同步的時候下載所有的數據,然后建立一個本地存儲,同時也在本地記錄同步的時間戳。
第二步:當客戶端程序發生改變的時候,它會更新對象的最后更新時間戳。
第三步:當下一次同步發生的時候,客戶端會決定自上一次同步后,哪些對象做了修改,然后僅把被修改的對象發送給服務器。服務器會合并這些修改。如果服務器對某一個對象的拷貝被另一個客戶端做了修改,那么它會以最近的時間戳為準來保存修改。然后服務器會回傳所有比上一次從客戶端發來的時間戳新的變化。這需要考慮到合并的問題,刪除所有覆蓋的變化。
也許有很多不同的方法。比如,你可以為每一個屬性引入一個時間戳,然后在屬性粒度級去追蹤變化。或者你可以在客戶端合并所有的數據,然后將合并后的結果發回給服務器,這實際上是互換了角色。但是,基本說來,一個設備發送修改結果給其他設備,然后接收方合并并回發合并后的結果。
刪除需要考慮更多。因為一旦刪除了一個對象,就不可能跟蹤它了。一種選擇是使用軟刪除,也就是對象并不是被真正的刪除,而是標記為刪除(比如使用一個Boolean屬性)。(這和在Finder中刪除一個文件類似。只有當你清空的垃圾桶之后,它才被永久地刪除。)
客戶端-服務器異步通訊(A-CS)
異步的數據同步框架和服務的吸引力在于它們提供了現成的解決方案。S-CS模式是要定制的,也就是說得為不同的應用程序以及不同的平臺編寫不同的代碼。
異步服務(比如,DropboxDatastoreAPI和WasabiSync)通常提供框架,讓應用程序開發者用起來好像是本地數據存儲。這些框架在本地保存修改,然后在后臺控制與服務器的同步。
A-CS和S-CS的一個最主要的區別在于,A-CS框架額外提供的抽象層,屏蔽了直接參與同步的客戶端代碼。這也意味著,同一服務可以用于所有的數據模型,而不是特定的一種模型。
同步和異步的概念
同步指兩個或兩個以上隨時間變化的量在變化過程中保持一定的相對關系。同步(英語:Synchronization),指對在一個系統中所發生的事件(event)之間進行協調,在時間上出現一致性與統一化的現象。在系統中進行同步,也被稱為及時(intime)、同步化的(synchronous、insync)。
異步的概念和同步相對。當一個異步過程調用發出后,調用者不能立刻得到結果。實際處理這個調用的部件在完成后,通過狀態、通知和回調來通知調用者。異步雙方不需要共同的時鐘,也就是接收方不知道發送方什么時候發送,所以在發送的信息中就要有提示接收方開始接收的信息,如開始位,同時在結束時有停止位。
什么是同步與異步時序邏輯電路
同步:所有觸發器共用一個觸發信號源CP,異步:所有觸發器沒有共用一個CP源,同步:優點,所有觸發器的狀態同時刷新,信號延遲時間短,缺點:結構復雜異步:優點,結構簡單,缺點,觸發器狀態刷新不同步,信號延遲可能會累積從而出現狀態異常。
計算機網絡通信采用同步和異步兩種方式,但傳送效率最高的是哪種方式
一般情況下是同步傳送效率比異步高但假設一條信道上只有兩個電腦在傳送信息這時效率就是一樣的
交流同步和交流異步電機的區別
區別是:磁場轉速和轉子轉速的差異。
交流同步電機的磁場轉速與轉子同步。
交流異步電機的磁場轉速與轉子不同步,有差異。
同步電機的精度高,但制造難度大、造價高、維修困難。
異步電機雖然反應慢,但制造容易、造價相對低,且維修容易。應用廣泛。
程序異步和同步有何區別
同步和異步的區別有:
1、概念不一樣:這是兩個相對的概念,同步是讓兩個或多個數據庫內容保持一致,或者按需要部分保持一致。異步則是計算機多線程的異步處理。異步的概念和同步相對。
2、要求不一樣:“同步通信”的通信雙方必須先建立同步,即雙方的時鐘要調整到同一個頻率。異步通信發送端不需要在發送一幀之前和接收端進行協調(不需要先進行比特同步)。
3、特點不一樣:異步通信的好處是通信設備簡單、便宜,但傳輸效率較低
關于什么是同步通信和異步通信和簡述異步通信的概念的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
本文鏈接:http://xinin56.com/su/2450.html