現(xiàn)場(chǎng)總線異步IO的概念及作用
異步IO和同步IO是兩個(gè)相對(duì)的概念,在現(xiàn)場(chǎng)總線相關(guān)技術(shù)中有一定的運(yùn)用,凌科作為相關(guān)技術(shù)的團(tuán)隊(duì)和產(chǎn)品銷(xiāo)售公司,來(lái)介紹一下異步IO的概念及作用。
異步IO的概念:當(dāng)一個(gè)異步過(guò)程調(diào)用發(fā)出后,調(diào)用者不能立刻得到結(jié)果。實(shí)際處理這個(gè)調(diào)用的部件在完成后,通過(guò)狀態(tài)、通知和回調(diào)來(lái)通知調(diào)用者。在一個(gè)CPU密集型的應(yīng)用中,有一些需要處理的數(shù)據(jù)可能放在磁盤(pán)上。預(yù)先知道這些數(shù) 據(jù)的位置,所以預(yù)先發(fā)起異步IO讀請(qǐng)求。等到真正需要用到這些數(shù)據(jù)的時(shí)候,再等待異步IO完成。使用了異步IO,在發(fā)起IO請(qǐng)求到實(shí)際使用數(shù)據(jù)這段時(shí)間 內(nèi),程序還可以繼續(xù)做其他事情。
I/O的同步與異步:I/O的同步與異步出現(xiàn)在應(yīng)用程序中。如果做阻塞I/O調(diào)用,應(yīng)用程序等待調(diào)用的完成的過(guò)程就是一種同步狀況。相反,I/O為非阻塞模式時(shí),應(yīng)用程序則是異步的。
異步IO的作用:
1、從用戶體驗(yàn)角度講,異步IO可以消除UI阻塞,快速響應(yīng)資源
JavaScript是單線程的,它與UI渲染共用一個(gè)線程。所以在JavaScript執(zhí)行的時(shí)候,UI渲染將處于停頓的狀態(tài),用戶體驗(yàn)較差。而異步請(qǐng)求可以在下載資源的時(shí)候,JavaScript和UI渲染都同時(shí)執(zhí)行,消除UI阻塞,降低響應(yīng)資源需要的時(shí)間開(kāi)銷(xiāo)。
從資源分配角度講,異步IO可以讓單線程遠(yuǎn)離阻塞,以更好地利用CPU
2、假設(shè)業(yè)務(wù)線上有一組互不相關(guān)的任務(wù)需要完成,現(xiàn)行的主流方法有以下兩種:
單線程同步執(zhí)行:會(huì)阻塞IO導(dǎo)致硬件資源和CPU得不到更優(yōu)的使用
多線程并發(fā)執(zhí)行:會(huì)出現(xiàn)死鎖、狀態(tài)同步等問(wèn)題
凌科可為工業(yè)自動(dòng)化控制系統(tǒng)提供解決方案,產(chǎn)品主要有現(xiàn)場(chǎng)總線分布式遠(yuǎn)程IO模塊及數(shù)字量模擬量擴(kuò)展模塊,有需求的客戶請(qǐng)及時(shí)和我們咨詢!