<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【14期】你能說說進程與線程的區(qū)別嗎

          共 1356字,需瀏覽 3分鐘

           ·

          2020-08-18 02:34

          程序員的成長之路
          互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享?
          關(guān)注


          閱讀本文大概需要 2.5 分鐘。

          來自:https://www.zhihu.com/question/25532384

          兩者的定義

          進程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,進程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。
          線程是進程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進程更小的能獨立運行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。

          進程與線程的區(qū)別

          1. 進程是資源分配最小單位,線程是程序執(zhí)行的最小單位;
          2. 進程有自己獨立的地址空間,每啟動一個進程,系統(tǒng)都會為其分配地址空間,建立數(shù)據(jù)表來維護代碼段、堆棧段和數(shù)據(jù)段,線程沒有獨立的地址空間,它使用相同的地址空間共享數(shù)據(jù);
          3. CPU切換一個線程比切換進程花費小;
          4. 創(chuàng)建一個線程比進程開銷小;
          5. 線程占用的資源要?進程少很多。
          6. 線程之間通信更方便,同一個進程下,線程共享全局變量,靜態(tài)變量等數(shù)據(jù),進程之間的通信需要以通信的方式(IPC)進行;(但多線程程序處理好同步與互斥是個難點)
          7. 多進程程序更安全,生命力更強,一個進程死掉不會對另一個進程造成影響(源于有獨立的地址空間),多線程程序更不易維護,一個線程死掉,整個進程就死掉了(因為共享地址空間);
          8. 進程對資源保護要求高,開銷大,效率相對較低,線程資源保護要求不高,但開銷小,效率高,可頻繁切換;

          加強理解,做個簡單的比喻:進程=火車,線程=車廂

          • 線程在進程下行進(單純的車廂無法運行)
          • 一個進程可以包含多個線程(一輛火車可以有多個車廂)
          • 不同進程間數(shù)據(jù)很難共享(一輛火車上的乘客很難換到另外一輛火車,比如站點換乘)
          • 同一進程下不同線程間數(shù)據(jù)很易共享(A車廂換到B車廂很容易)
          • 進程要比線程消耗更多的計算機資源(采用多列火車相比多個車廂更耗資源)
          • 進程間不會相互影響,一個線程掛掉將導(dǎo)致整個進程掛掉(一列火車不會影響到另外一列火車,但是如果一列火車上中間的一節(jié)車廂著火了,將影響到所有車廂)
          • 進程可以拓展到多機,進程最多適合多核(不同火車可以開在多個軌道上,同一火車的車廂不能在行進的不同的軌道上)
          • 進程使用的內(nèi)存地址可以上鎖,即一個線程使用某些共享內(nèi)存時,其他線程必須等它結(jié)束,才能使用這一塊內(nèi)存。(比如火車上的洗手間)-"互斥鎖"
          • 進程使用的內(nèi)存地址可以限定使用量(比如火車上的餐廳,最多只允許多少人進入,如果滿了需要在門口等,等有人出來了才能進去)-“信號量”

          推薦閱讀:

          【13期】談?wù)?Redis 的過期策略

          【12期】談?wù)勴椖恐袉吸c登錄的實現(xiàn)原理?

          【11期】分布式系統(tǒng)接口,如何避免表單的重復(fù)提交?

          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機,樹莓派,等等。在公眾號內(nèi)回復(fù)「2048」,即可免費獲取!!

          微信掃描二維碼,關(guān)注我的公眾號

          寫留言

          朕已閱?

          瀏覽 26
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  先锋影音成人在线 | 超碰97在线免费观看 | 在线无码电影 | 日视频啪啪啪在线观看 | 超碰国产在线凹凸 |