進程和線程的關係

來源:互聯網
上載者:User
  1. 線程是指進程內的一個執行單元,也是進程內的可調度實體.
    與進程的區別:
    (1)地址空間:進程內的一個執行單元;進程至少有一個線程;它們共用進程的地址空間;而進程有自己獨立的地址空間;
    (2)資源擁有:進程是資源分派和擁有的單位,同一個進程內的線程共用進程的資源
    (3)線程是處理器調度的基本單位,但進程不是.
    4)二者均可並發執行.

    進程和線程都是由作業系統所體會的程式啟動並執行基本單元,系統利用該基本單元實現系統對應用的並發性。進程和線程的區別在於:

    簡而言之,一個程式至少有一個進程,一個進程至少有一個線程.
    線程的劃分尺度小於進程,使得多線程程式的並發性高。
    另外,進程在執行過程中擁有獨立的記憶體單元,而多個線程共用記憶體,從而極大地提高了程式的運行效率。
    線程在執行過程中與進程還是有區別的。每個獨立的線程有一個程式啟動並執行入口、順序執行序列和程式的出口。但是線程不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個線程執行控制。

    從邏輯角度來看,多線程的意義在於一個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分派。這就是進程和線程的重要區別。

    進程是具有一定獨立功能的程式關於某個資料集合上的一次運行活動,進程是系統進行資源分派和調度的一個獨立單位.

    線程是進程的一個實體,是CPU調度和指派的基本單位,它是比進程更小的能獨立啟動並執行基本單位.線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(如程式計數器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共用進程所擁有的全部資源.

    一個線程可以建立和撤銷另一個線程;同一個進程中的多個線程之間可以並發執行.

    1. 進程——只是資源分派的單位, 而不是調度啟動並執行單位。
    2. 線程——進程中執行運算的最小單位, 亦即執行處理調度的基本單位。
    3. 線程組成
    4. 一個進程可有多個線程,它們共用該進程的資源。
    5. 引入線程的好處
      1. 易於調度
      2. 提高並發性
      3. 開銷少
      4. 利於充分發揮多處理器的功能
    6. 進程和線程的關係
      1. 一個線程只能屬於一個進程, 而一進程可以有多個線程, 但至少有一個線程。
      2. 資源分派給進程, 同一進程的所有線程共用進程的所有資源。
      3. 處理機分給線程, 即真正在處理機上啟動並執行是線程。
      4. 線程在執行過程中, 需要協作同步。 不同進程的線程間要利用訊息通訊的辦法實現同步

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.