概念題:進程與線程

進程與線程區別與聯繫

  (1)    劃分尺度:線程更小,所以多線程程序併發性更高;

  (2)    資源分配:進程是資源分配的基本單位,同一進程內多個線程共享其資源;

  (3)    地址空間:進程擁有獨立的地址空間,同一進程內多個線程共享其資源;

  (4)    處理器調度:線程是處理器調度的基本單位;

  (5)    執行:每個線程都有一個程序運行的入口,順序執行序列和程序的出口,但線程不能單獨執行,必須組成進程,一個進程至少有一個主線程。簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.

 

什麼是“線程安全”

如果你的代碼所在的進程中有多個線程在同時運行,而這些線程可能會同時運行這段代碼。如果每次運行結果和單線程運行的結果是一樣的,而且其他的變量的值也和預期的是一樣的,就是線程安全的。
或者說:一個類或者程序所提供的接口對於線程來說是原子操作或者多個線程之間的切換不會導致該接口的執行結果存在二義性,也就是說我們不用考慮同步的問題。
線程安全問題都是由全局變量靜態變量引起的。
若每個線程中對全局變量靜態變量只有讀操作,而無寫操作,一般來說,這個全局變量是線程安全的;若有多個線程同時執行寫操作,一般都需要考慮線程同步,否則的話就可能影響線程安全。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章