本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《Python入門2020最新大課》,主講人姜偉。
進程和線程的區別
線程和進程
功能
- 進程,能夠完成多任務,比如 在一臺電腦上能夠同時運行多個QQ。
- 線程,能夠完成多任務,比如 一個QQ中的多個聊天窗口。
定義的不同
- 進程是系統進行資源分配和調度的一個獨立單位。
- 線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位.線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。
區別
- 一個程序至少有一個進程,一個進程至少有一個線程。
- 線程的劃分尺度小於進程(資源比進程少),使得多線程程序的併發性高。
- 進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程序的運行效率。
- 線程不能夠獨立執行,必須依存在進程中。
- 可以將進程理解為工廠中的一條流水線,而其中的線程就是這個流水線上的工人
優缺點
線程和進程在使用上各有優缺點:線程執行開銷小,但不利於資源的管理和保護;而進程正相反。