真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

進(jìn)程、程序、線程、多線程、并發(fā)、并行詳解-創(chuàng)新互聯(lián)

        本人初入golang開發(fā)方向,目前剛?cè)腴T。在代碼開發(fā)過程中,需要提前了解一下進(jìn)程、線程、多線程、并發(fā)、并行等專業(yè)知識(shí)的概念。

10年積累的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有且末免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
        首先,并行與并發(fā)都是程序多線程處理場(chǎng)景,因此,一旦提到并行與并發(fā),那首先想到的是多線程。

        那么說到多線程,首先要了解一下什么是進(jìn)程,什么是線程?

進(jìn)程
        狹義理解就是操作系統(tǒng)中一段程序的執(zhí)行過程。那么廣義上,進(jìn)程是指一個(gè)具有一定獨(dú)立功能的程序操作系統(tǒng)中關(guān)于某個(gè)數(shù)據(jù)集合進(jìn)行的一次運(yùn)行活動(dòng)。是操作系統(tǒng)程序動(dòng)態(tài)執(zhí)行的基本單元。在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程既是一個(gè)操作系統(tǒng)的基本分配單元,也是操作系統(tǒng)的基本執(zhí)行單元。

     1、首先,進(jìn)程是一個(gè)實(shí)體,每一個(gè)進(jìn)程都有自己對(duì)應(yīng)的系統(tǒng)分配的內(nèi)存地址,一般情況下,包括文本區(qū)域(text region)、數(shù)據(jù)區(qū)域(data region)和堆棧(stack region)。文本區(qū)域存儲(chǔ)處理器執(zhí)行的代碼;數(shù)據(jù)區(qū)域存儲(chǔ)變量和進(jìn)程執(zhí)行期間使用的動(dòng)態(tài)分配的內(nèi)存;堆棧區(qū)域存儲(chǔ)著活動(dòng)過程調(diào)用的指令和本地變量;

   2、進(jìn)程可以理解為一個(gè)正在執(zhí)行的程序,程序是一個(gè)靜態(tài)的沒有生命體征的實(shí)體,而經(jīng)過操作系統(tǒng)處理對(duì)其賦予生命時(shí)(即調(diào)用程序執(zhí)行操作),這個(gè)程序才可以變?yōu)橐粋€(gè)活動(dòng)的、有生命體征的實(shí)體,即進(jìn)程。

   3、進(jìn)程共有三種狀態(tài):就緒、阻塞和運(yùn)行。

       (1)、就緒態(tài):就緒狀態(tài)是指程序已達(dá)到可以運(yùn)行的狀態(tài),只等CPU分配資源就可以運(yùn)行的狀態(tài)。

       (2)、阻塞態(tài):當(dāng)程序運(yùn)行條件沒有滿足時(shí),需要等待條件滿足時(shí)候才能執(zhí)行時(shí)所處的狀態(tài),如等待i/o操作時(shí)候,此刻的狀態(tài)就叫阻塞態(tài)。

       (3)、運(yùn)行態(tài):進(jìn)程占用CPU,并在CPU上運(yùn)行。即程序正在運(yùn)行時(shí)所處的狀態(tài)。

       進(jìn)程狀態(tài)轉(zhuǎn)換在此處不在贅述,請(qǐng)看下一篇文章。

程序

   程序是指系統(tǒng)指令和數(shù)據(jù)的有序集合,是一個(gè)靜態(tài)的實(shí)體,不存在運(yùn)行狀態(tài)的概念。

   進(jìn)程與程序的概念:

   1、進(jìn)程是程序運(yùn)行所處的狀態(tài)實(shí)體名稱,是一個(gè)動(dòng)態(tài)概念。

   2、進(jìn)程包含程序,進(jìn)程的執(zhí)行離不開程序,二進(jìn)程的文本區(qū)域就是代碼區(qū),即程序存儲(chǔ)的區(qū)域。

線程

    線程是進(jìn)程中執(zhí)行運(yùn)算的最小單元,是操作系統(tǒng)執(zhí)行處理機(jī)制的基本單位。每個(gè)進(jìn)程至少有一個(gè)線程,線程可以利用進(jìn)程所擁有的資源執(zhí)行調(diào)度和運(yùn)算。

     在引入線程的操作系統(tǒng)中,通常都是把進(jìn)程作為分配資源的基本單位,而把線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位,線程可以在一個(gè)進(jìn)程中進(jìn)行切換,占用資源開銷小,能更高效的提高系統(tǒng)多個(gè)程序間并發(fā)執(zhí)行的程度。

     線程既可以有操作系統(tǒng)內(nèi)核控制調(diào)度,也可以由用戶程序控制調(diào)度。

進(jìn)程與線程的對(duì)比

    1、進(jìn)程是操作系統(tǒng)資源分配的基本單位,所有與該進(jìn)程有關(guān)的資源,均會(huì)被記錄在進(jìn)程控制塊PCB中,以表示該進(jìn)程所擁有的資源。同一進(jìn)程下的所有線程共享該進(jìn)程下的所有資源。

   2、線程是分配處理機(jī)的基本單位,與系統(tǒng)資源分配無關(guān)。事實(shí)上,正在在處理機(jī)上運(yùn)行的是線程,并非進(jìn)程。

   3、一個(gè)線程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線程,但至少有一個(gè)線程。

   4、線程在執(zhí)行的時(shí)候需要協(xié)作同步,不同進(jìn)程的線程間要利用消息通信方法實(shí)現(xiàn)同步。

進(jìn)程與線程的關(guān)系

進(jìn)程、程序、線程、多線程、并發(fā)、并行詳解

   1、進(jìn)程將CPU資源分給線程,即真正在CPU上運(yùn)行的是線程。

   2、操作資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。

多進(jìn)程

   在同一個(gè)時(shí)間里,同一個(gè)計(jì)算機(jī)系統(tǒng)中如果允許兩個(gè)或兩個(gè)以上的進(jìn)程處于運(yùn)行狀態(tài),這便是多任務(wù)(多進(jìn)程)。現(xiàn)代的操作系統(tǒng)幾乎都是多進(jìn)程操作系統(tǒng),能夠同時(shí)管理多個(gè)進(jìn)程的運(yùn)行。 多進(jìn)程帶來的好處是明顯的。但是多進(jìn)程對(duì)于系統(tǒng)的資源要求甚高,資源浪費(fèi)也比較嚴(yán)重。應(yīng)用多進(jìn)程場(chǎng)景最多的是windows系統(tǒng),例如同時(shí)打開運(yùn)行軟件,每個(gè)軟件打開相當(dāng)于運(yùn)行一個(gè)進(jìn)程。

多線程

   在一段完整的代碼中,往往會(huì)有需要獨(dú)立的代碼模塊,而這些獨(dú)立運(yùn)行的程序片段叫作“線程”(Thread),利用多個(gè)線程編程的概念就叫作多線程處理(多線程編程),多線程是為了同步完成多項(xiàng)任務(wù),不是為了提高運(yùn)行效率,而是為了提高資源使用效率來提高系統(tǒng)的效率。多線程是在程序在同一時(shí)間需要完成多項(xiàng)任務(wù)的時(shí)候?qū)崿F(xiàn)的。多線程的目的僅僅是為了提高資源利用效率。各個(gè)線程執(zhí)行自己的任務(wù),這些線程可以”同時(shí)進(jìn)行“。同時(shí)進(jìn)行并非同一時(shí)刻進(jìn)行,而是在某一時(shí)間段內(nèi),完成所有任務(wù),任務(wù)的運(yùn)行有先后順序。

并發(fā)

   進(jìn)程、程序、線程、多線程、并發(fā)、并行詳解

    并發(fā)的實(shí)質(zhì)是一個(gè)物理CPU(也可以多個(gè)物理CPU) 在若干道程序(或線程)之間多路復(fù)用,并發(fā)性是對(duì)有限物理資源強(qiáng)制行使多用戶共享以提高效率。

    微觀角度:所有的并發(fā)處理都有排隊(duì)等候,喚醒,執(zhí)行等這樣的步驟,在微觀上他們都是序列被處理的,如果是同一時(shí)刻到達(dá)的請(qǐng)求(或線程)也會(huì)根據(jù)優(yōu)先級(jí)的不同,而先后進(jìn)入隊(duì)列排隊(duì)等候執(zhí)行。

    宏觀角度:多個(gè)幾乎同時(shí)到達(dá)的請(qǐng)求(或線程)在宏觀上看就像是同時(shí)在被處理。

   并發(fā)就是只有一個(gè)CPU資源,程序(或線程)之間要競(jìng)爭(zhēng)得到執(zhí)行機(jī)會(huì)。圖中的第一個(gè)階段,在A執(zhí)行的過程中B,C不會(huì)執(zhí)行,因?yàn)檫@段時(shí)間內(nèi)這個(gè)CPU資源被A競(jìng)爭(zhēng)到了,同理,第二個(gè)階段只有B在執(zhí)行,第三個(gè)階段只有C在執(zhí)行。其實(shí),并發(fā)過程中,A,B,C并不是同時(shí)在進(jìn)行的(微觀角度)。但又是同時(shí)進(jìn)行的(宏觀角度)。

并行

   進(jìn)程、程序、線程、多線程、并發(fā)、并行詳解

   并行指兩個(gè)或兩個(gè)以上事件(或線程)在同一時(shí)刻發(fā)生,是真正意義上的不同事件或線程在同一時(shí)刻,在不同CPU資源上(多核),同時(shí)執(zhí)行。

  并行,不存在像并發(fā)那樣競(jìng)爭(zhēng)CPU資源,等待執(zhí)行的概念,因?yàn)椴⑿袪顟B(tài)下的線程分布在不同的CPU上。

   圖中,A,B,C都在同時(shí)運(yùn)行(微觀,宏觀)。

通過多線程實(shí)現(xiàn)并發(fā),并行

   1、在CPU比較繁忙,資源不足的時(shí)候(開啟了很多進(jìn)程),操作系統(tǒng)只為一個(gè)含有多線程的進(jìn)程分配僅有的CPU資源,這些線程就會(huì)為自己盡量多搶時(shí)間片,這就是通過多線程實(shí)現(xiàn)并發(fā),線程之間會(huì)競(jìng)爭(zhēng)CPU資源爭(zhēng)取執(zhí)行機(jī)會(huì)。

 2、 在CPU資源比較充足的時(shí)候,一個(gè)進(jìn)程內(nèi)的多線程,可以被分配到不同的CPU資源,這就是通過多線程實(shí)現(xiàn)并行。

 3、至于多線程實(shí)現(xiàn)的是并發(fā)還是并行?上面所說,所寫多線程可能被分配到一個(gè)CPU內(nèi)核中執(zhí)行,也可能被分配到不同CPU執(zhí)行,分配過程是操作系統(tǒng)所為,不可人為控制。所有,如果有人問我我所寫的多線程是并發(fā)還是并行的?我會(huì)說,都有可能。

 4、不管并發(fā)還是并行,都提高了程序?qū)PU資源的利用率,大限度地利用CPU資源。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。


本文名稱:進(jìn)程、程序、線程、多線程、并發(fā)、并行詳解-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://weahome.cn/article/eopos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部