JAVA 多線程和併發學習筆記(一)

1、進程與線程編程

  1. 進程多線程

  當一個程序進入內存運行時,即變成一個進程。進程是處於運行過程當中的程序。進程是操做系統進行資源分配和調度的一個獨立單位。進程的三個特徵:併發

  • 獨立性

    獨立存在的實體,每一個進程都有本身獨立私有的一塊內存空間。操作系統

  • 動態性

     程序只是一個靜態的指令集合,而進程是一個正在系統中活動的指令集合。線程

  • 併發性

    多個進程可在單處理器上併發執行。設計

  2. 線程進程

  線程是操做系統可以進行運算調度的最小單位,它被包含在進程之中,是進程中的實際運做單位。線程也被稱做輕量級進程。線程在進程中是獨立,併發的執行流。內存

  3.線程和進程的區別資源

  線程是進程的組成部分,一個進程能夠有不少線程,每條線程並行執行不一樣的任務。 不一樣的進程使用不一樣的內存空間,而線程與父進程的其餘線程共享父進程的所擁有的所有資源。這樣編程方便了,可是要更加當心。 別把內存空間和棧內存搞混,每一個線程都擁有單獨的棧內存用來存儲本地數據。線程擁有本身的堆棧、本身的程序計數器和本身的局部變量,但不擁有系統資源。 線程的調度和管理由進程自己負責完成。操做系統對進程進行調度,管理和資源分配。程序設計

  4.併發與並行

  併發是指在同一時間點只能有一條指令執行,但多個進程指令被快速輪換執行,使得在宏觀上具備多個進程同時執行的效果。
並行指在同一時間點,有多條指令在多個處理器上同時執行

2、 多線程的優點

  進程之間不能共享內存,但線程之間共享內存。 系統建立進程時須要爲該進程從新分配系統資源,但建立線程則代價小不少,效率高。 多線程具備如下優點:

    • 資源利用率更好
    • 程序設計在某些狀況下更簡單
    • 程序響應更快
相關文章
相關標籤/搜索