go語(yǔ)言實(shí)現(xiàn)協(xié)程的方法-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)go語(yǔ)言實(shí)現(xiàn)協(xié)程的方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司成立與2013年,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元萬(wàn)秀做網(wǎng)站,已為上家服務(wù),為萬(wàn)秀各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18982081108

實(shí)現(xiàn)并發(fā)編程有進(jìn)程,線(xiàn)程,IO多路復(fù)用的方式。(并發(fā)和并行我們這里不區(qū)分,如果CPU是多核的,可能在多個(gè)核同時(shí)進(jìn)行,我們叫并行,如果是單核,需要排隊(duì)切換,我們叫并發(fā))

進(jìn)程是計(jì)算機(jī)資源分配的最小單位,進(jìn)程是對(duì)處理器資源,虛擬內(nèi)存(1)的抽象,而虛擬內(nèi)存是對(duì)主存資源和文件(2)的抽象,文件是對(duì)I/O設(shè)備的抽象。線(xiàn)程是計(jì)算機(jī)調(diào)度的最小單位,共享同個(gè)進(jìn)程分配的計(jì)算機(jī)資源。

上面這些是在深入理解計(jì)算機(jī)系統(tǒng)說(shuō)的。

總上所述,實(shí)際實(shí)現(xiàn)并發(fā)的是線(xiàn)程。首先,每個(gè)進(jìn)程都有一個(gè)主線(xiàn)程,因?yàn)榫€(xiàn)程是調(diào)度的最小單位,你可以只有一個(gè)線(xiàn)程,但是你也可以創(chuàng)建多幾個(gè)線(xiàn)程,線(xiàn)程調(diào)度需要CPU來(lái)切換,需要內(nèi)核層的上下文切換,如果你跑了A線(xiàn)程,然后切到B線(xiàn)程,內(nèi)核調(diào)用開(kāi)始,CPU需要對(duì)A線(xiàn)程的上下文保留,然后切到B線(xiàn)程,然后把控制權(quán)交給你的應(yīng)用層調(diào)度。進(jìn)程切換也需要內(nèi)核來(lái)切換,因?yàn)閺腃進(jìn)程的主線(xiàn)程切換到D進(jìn)程的主線(xiàn)程。

那么進(jìn)程間要通訊呀,而且他們資源不共享,這個(gè)時(shí)候需要用IPC(Inter-Process Communication,進(jìn)程間通信),常用的有信號(hào)量,共享內(nèi)存,套接字,實(shí)際百度上說(shuō)有六種耶,而同個(gè)進(jìn)程的多個(gè)線(xiàn)程共享資源,通訊起來(lái)比進(jìn)程容易多了,現(xiàn)在很多Java等編程語(yǔ)言都有這種線(xiàn)程交互實(shí)現(xiàn)。

至于IO多路復(fù)用,其實(shí)就是維持一個(gè)隊(duì)列,然后讓一個(gè)線(xiàn)程或多個(gè)線(xiàn)程,去隊(duì)列里面拿任務(wù)去完成。為什么呢?因?yàn)榫€(xiàn)程的數(shù)量是有限的,而且線(xiàn)程間通訊需要點(diǎn)資源,內(nèi)核也要頻繁切換上下文。

一個(gè)線(xiàn)程的IO多路復(fù)用,典型的就是Redis和Nodejs了,根本不需要切換上下文,一個(gè)線(xiàn)程走天下。而多個(gè)線(xiàn)程的IP多路復(fù)用,就是Golang協(xié)程的實(shí)現(xiàn)方式了,協(xié)程,自己管理線(xiàn)程,把線(xiàn)程控制到一定的數(shù)量,然后構(gòu)造一個(gè)規(guī)則狀態(tài)機(jī)來(lái)調(diào)度任務(wù)。

看完上述內(nèi)容,你們對(duì)go語(yǔ)言實(shí)現(xiàn)協(xié)程的方法有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。

網(wǎng)頁(yè)題目:go語(yǔ)言實(shí)現(xiàn)協(xié)程的方法-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article24/cdcice.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航、網(wǎng)站內(nèi)鏈、建站公司網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)