劉健 黃才勝
摘要:本文運(yùn)用goroutine的簡便特點(diǎn)研發(fā)了webgo架構(gòu),通過對(duì)比webgo架構(gòu)和beego架構(gòu)可以看出融入?yún)f(xié)程思想的高并發(fā)架構(gòu)更有優(yōu)勢(shì)。
關(guān)鍵詞:計(jì)算機(jī);軟件;協(xié)程;高并發(fā)結(jié)構(gòu)
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)04-0085-02
隨著我國網(wǎng)絡(luò)建設(shè)的不斷發(fā)展,軟件研發(fā)產(chǎn)業(yè)也進(jìn)入了發(fā)展的快車道,越來越多的網(wǎng)頁以及應(yīng)用軟件應(yīng)運(yùn)而生,如何提高網(wǎng)絡(luò)的效率和便捷性日益成為人們關(guān)注的焦點(diǎn)。相比于傳統(tǒng)網(wǎng)絡(luò)來說,如今網(wǎng)民對(duì)網(wǎng)絡(luò)的要求更高,使用頻率也更高,為了滿足廣大網(wǎng)民對(duì)計(jì)算機(jī)系統(tǒng)的高要求,軟件工程師們加大了對(duì)計(jì)算機(jī)高并發(fā)架構(gòu)的研發(fā)力度。雖然物理結(jié)構(gòu)上的改變能夠高并發(fā),但是這種改變需要大量的服務(wù)器,運(yùn)行成本將大幅度增加,另外,由于線程的數(shù)量有限,因此,本文利用協(xié)程的思想進(jìn)行多線程的程序設(shè)計(jì)。
1 協(xié)程
1.1 協(xié)程定義
所謂協(xié)程,其實(shí)是一套簡便程序組件,協(xié)程比傳統(tǒng)的線程使用起來更為簡單輕巧[1]。進(jìn)程與線程是操作系統(tǒng)中的兩種結(jié)構(gòu),通過交叉結(jié)合使用進(jìn)程與線程可以讓計(jì)算機(jī)的操作系統(tǒng)出于多種運(yùn)行模式下。對(duì)于單核CPU來說,每次僅調(diào)用單個(gè)進(jìn)程或線程。調(diào)度內(nèi)核能夠使進(jìn)程與線程交替獲得CPU資源,從而把使用者所提交的作業(yè)化整為零。
協(xié)程與進(jìn)程、線程有著明顯的不同:協(xié)程提出于編譯器層面,而進(jìn)程、線程提出于操作系統(tǒng)層面;協(xié)程是通過提議一種語言來做編譯器的標(biāo)準(zhǔn),再由編譯器的制造者實(shí)現(xiàn)這種機(jī)制,而進(jìn)程、線程是通過操作系統(tǒng)來進(jìn)行分配與調(diào)度的;……