老衛帶你學---進程和線程的區別

進程:

  • 一個程序是由指令數據構成的,指令需要cpu加載,數據需要內存存儲。而進程就是用來管理內存,管理IO,管理指令的

  • 進程相當於一個程序的實例,一個程序可以有多個實例(如瀏覽器),也可以只有一個實例(如qq音樂)

線程:

  • 一個進程是由多個線程構成的
  • 一個線程對應的一個指令流,由cpu進行加載
  • 線程是最小的調度單元,用於cpu加載指令;進程是最小的資源分配單元。在windows中,進程相當於線程的容器

兩者的區別:

  • 進程之間是相互獨立的,線程是屬於進程內部的
  • 進程擁有共享資源,如內存空間,供內部的線程共享
  • 進程間的通信較複雜,同一臺計算機的進程間通信稱爲IPC,不同計算機的進程間通信需要使用網絡,如HTTP
  • 線程間的通信較簡單,且較輕量,線程間上下文切換成本要比進程間上下文切換成本低
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章