將想法與焦點(diǎn)和您一起共享

網(wǎng)站設計中同步調用,還是異步調用?發(fā)布者:本站     時(shí)間:2019-11-12 13:11:58

我們已經(jīng)知道了同步的基本定義和一些示例,那么讓我們拓寬一-下討論,看看應用中的同步調用和異步調用。同步調用是在調用返回時(shí)才能完全執行它們的動(dòng)作。如果一個(gè)方法被調用了,控制權被轉給該方法來(lái)行使,那么只有當該方法完成了自己要執行的操作,成功地返回了或者返回有錯時(shí),應用中調用該方法的地方才會(huì )重新得到控制權。換而言之,同步方法先被調用,然后它們執行操作,當它們完成時(shí),會(huì )返還控制權。

作為同步方法的一個(gè)示例,讓我們來(lái)看看AllScale公司的HRM服務(wù)中的一個(gè)方法query_ exec。該方法用于構建和執行一個(gè)動(dòng)態(tài)的數據庫查詢(xún)。query_ exec方法中的一個(gè)步驟是建立一一個(gè)數據庫連接。在得到這個(gè)數據庫連接任務(wù)成功完成了的明確確認之前,query. exec方法不會(huì )繼續執行。這樣做既浪費資源,又浪費時(shí)間。如果數據庫不可用,那么該應用就不應該把時(shí)間浪費在創(chuàng )建查詢(xún)、等待數據庫恢復可用上。事實(shí)上,如果數據庫不可用了,,看看如何劃分數據庫來(lái)提高它的可用性。盡管如此,這是個(gè)說(shuō)明同步調用是 如何工作的例子。因此,發(fā)起調用的方法會(huì )被暫停,直到被調用的進(jìn)程返回結果之前,它是不能完成的。
 
另一個(gè)說(shuō)明同步性的非技術(shù)示例是兩個(gè)人之間的溝通,這可以是面對面,也可以是通過(guò)電話(huà)。如果這兩個(gè)人都忙于有意義的談話(huà),那么就不太可能發(fā)生其他的動(dòng)作。其中一人如果不停止與另一人的談話(huà),那么很難再與第三個(gè)人開(kāi)始交談。電話(huà)會(huì )直占線(xiàn),直到兩個(gè)人中的一個(gè)或者兩者掛斷了電話(huà)。
 
與同步方法或進(jìn)程相對的是異步方法。在異步方法調用中,會(huì )在一個(gè)新的線(xiàn)程中調用一個(gè)方法,這個(gè)方法會(huì )立即把控制權返回給調用它的線(xiàn)程。描述異步方法調用的設計模式叫作異步設計或異步方法調用(AMI)。這個(gè)異步調用的方法會(huì )在另一個(gè)線(xiàn)程中繼續執行,或成功結束或出現錯誤,但都不會(huì )再與發(fā)起它的線(xiàn)程有進(jìn)一步的交互。 讓我們再來(lái)看看AllScale公司的query exec方法。在調用了同步方法,建立數據庫連接后,該方法需要準備和執行查詢(xún)了。在HRM系統中,AllScale公司有一個(gè)監控框架,能夠用來(lái)觀(guān)察所有查詢(xún)的持續時(shí)間以及查詢(xún)是否成功了,這個(gè)框架采用了異步調用方法start query_ time和end query time。這些方法會(huì )把一個(gè)系統時(shí)間存儲在內存中,等待調用的結束,以便計算查詢(xún)的持續時(shí)間。然后這個(gè)持續時(shí)間會(huì )被存儲在一個(gè)監控數據
 
庫中,通過(guò)查詢(xún)這個(gè)數據庫,可以根據查詢(xún)運行時(shí)間的長(cháng)短了解系統運行狀況如何。雖然監控查詢(xún)的性能很重要,但讓查詢(xún)真正服務(wù)于用戶(hù)的請求更為重要。因此,start query time和lend query_time這些方法是以異步模式調用的。如果它們運行成功并返回了結果,那么AllScale公司的運營(yíng)團隊和軟件開(kāi)發(fā)團隊就能從監控數據庫中得到查詢(xún)時(shí)間。即使監控調用失敗了,或者連接監控數據庫花了20秒的時(shí)間,這些團隊都不會(huì )在乎。用戶(hù)的查詢(xún)仍然在運行,它們根本不關(guān)心這些異步調用。
 
回到我們人際溝通的示例,電子郵件是個(gè)異步通信的很好例子。你寫(xiě)了電子郵件并把它發(fā)出去后,可以立即去做其他的事情,可以寫(xiě)另一封郵件, 也可以打一輪高爾夫球或者其他什么事情。當回復的郵件在一個(gè)合適的時(shí)候到達時(shí),你可以閱讀這封回復的郵件,并可能發(fā)出另一封郵件,作為回復。這個(gè)網(wǎng)站設計的溝通鏈除了需要為處理溝通和寫(xiě)回信花費點(diǎn)時(shí)間之外,不會(huì )妨礙發(fā)送者和接收者的任何其他活動(dòng)。










選擇我們,優(yōu)質(zhì)服務(wù),不容錯過(guò)
1. 優(yōu)秀的網(wǎng)絡(luò )資源,強大的網(wǎng)站優(yōu)化技術(shù),穩定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設經(jīng)驗,優(yōu)秀的技術(shù)和設計水平,更放心
3. 全程省心服務(wù),不必擔心自己不懂網(wǎng)絡(luò ),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話(huà):021-58370032
最新国产精品第二页_色资源av中文无码先锋_中国xx爽69护士_日韩欧美亚洲每日更新在线观看