GO語言網(wǎng)絡(luò)編程(并發(fā)編程)并發(fā)介紹,Goroutine
1、并發(fā)介紹
進(jìn)程和線程
A. 進(jìn)程是程序在操作系統(tǒng)中的一次執(zhí)行過程,系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。 B. 線程是進(jìn)程的一個(gè)執(zhí)行實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。 C.一個(gè)進(jìn)程可以創(chuàng)建和撤銷多個(gè)線程;同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。
并發(fā)和并行
A. 多線程程序在一個(gè)核的cpu上運(yùn)行,就是并發(fā)。 B. 多線程程序在多個(gè)核的cpu上運(yùn)行,就是并行。
協(xié)程和線程
協(xié)程:獨(dú)立的??臻g,共享堆空間,調(diào)度由用戶自己控制,本質(zhì)上有點(diǎn)類似于用戶級(jí)線程,這些用戶級(jí)線程的調(diào)度也是自己實(shí)現(xiàn)的。
線程:一個(gè)線程上可以跑多個(gè)協(xié)程,協(xié)程是輕量級(jí)的線程。
goroutine 只是由官方實(shí)現(xiàn)的超級(jí)"線程池"。
每個(gè)實(shí)力4~5KB的棧內(nèi)存占用和由于實(shí)現(xiàn)機(jī)制而大幅減少的創(chuàng)建和銷毀開銷是go高并發(fā)的根本原因。
并發(fā)不是并行:
并發(fā)主要由切換時(shí)間片來實(shí)現(xiàn)"同時(shí)"運(yùn)行,并行則是直接利用多核實(shí)現(xiàn)多線程的運(yùn)行,go可以設(shè)置使用核數(shù),以發(fā)揮多核計(jì)算機(jī)的能力。文章來源:http://www.zghlxwxcb.cn/news/detail-704759.html
goroutine 奉行通過通信來共享內(nèi)存,而不是共享內(nèi)存來通信。文章來源地址http://www.zghlxwxcb.cn/news/detail-704759.html
到了這里,關(guān)于GO語言網(wǎng)絡(luò)編程(并發(fā)編程)并發(fā)介紹,Goroutine的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!