開發與維運

進程和線程的區別

本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《Python入門2020最新大課》,主講人姜偉。

進程和線程的區別

線程和進程

功能

  • 進程,能夠完成多任務,比如 在一臺電腦上能夠同時運行多個QQ。
  • 線程,能夠完成多任務,比如 一個QQ中的多個聊天窗口。

定義的不同

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

區別

  • 一個程序至少有一個進程,一個進程至少有一個線程。
  • 線程的劃分尺度小於進程(資源比進程少),使得多線程程序的併發性高。
  • 進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程序的運行效率。
  • 線程不能夠獨立執行,必須依存在進程中。
  • 可以將進程理解為工廠中的一條流水線,而其中的線程就是這個流水線上的工人

image.png

優缺點
線程和進程在使用上各有優缺點:線程執行開銷小,但不利於資源的管理和保護;而進程正相反。

配套視頻

Leave a Reply

Your email address will not be published. Required fields are marked *