作業系統——執行緒與程式的區別與聯絡?什麼是執行緒安全?
什麼是程式:
1、程式就是執行中的一段程式,也就是說,一旦程式被載入到了記憶體並準備執行時,它就是一個程式;2、程式具有文字、資料、堆疊片段以及它自己的資源。資源可以是檔案,物件控制程式碼,裝置,訊號量,互斥量,管道等等;
3、作業系統管理程式以及它的資源,有大量資訊與程式有關,這些資訊儲存在一個稱作程式控制塊的資料結構中;作業系統就是用這個程式控制塊來管理程式以及它的資源;
4、當建立了一個程式的時候,就分配了一個程式空間。文字片段通過一個可執行映像初始化;
什麼是執行緒:
1、執行緒是一種輕量級程式。與程式相比,執行緒給作業系統帶來的建立、維護和管理負擔要輕,因為與執行緒相關的資訊非常少;2、執行緒沒有地址空間,執行緒包含在程式的地址空間中;執行緒文字包含在它的程式的文字片段中;程式擁有的資源執行緒都可以使用;
3、一個程式裡面可以有多個執行緒,這些執行緒共享程式的資源;
兩者的區別:
1、相同點:
第一:都有上下文內容;第二:都可以發生上下文切換(發生三種狀態的相互轉換,執行,阻塞,就緒);
第三:都可以實現併發執行;
2、不同點:
第一:執行緒是一種輕量級程式;第二:執行緒沒有自己的執行緒空間,執行緒包含在程式的程式空間中;
第三:一個程式可以包含一個或多個執行緒;
執行緒安全:
多個執行緒共享程式的資源,當多個執行緒都執行一段程式碼,但是這一段程式碼會用到一個全域性變數並會修改這個全域性變數,所以這個時候會出現問題;多個執行緒併發執行,當第一個執行緒讀取這個值的時候是3,當正在處理的時候另外一個執行緒將這個變數的值改為了9,這個時候就可能會出現問題。
這是多個執行緒併發執行出現的競爭問題,所以需要用到執行緒的同步方法;執行緒同步方法,一般有互斥量,互斥量與條件變數配合使用(生產者與消費者模型),訊號量,讀寫鎖;
參考:http://blog.csdn.net/linux_ever/article/details/50354377
上面的這些東西都是一些比較小的知識點,想徹底搞懂需要看很多介紹,下面是一些參考資料
具體參考資料:
1、現代作業系統(內容講的很細很詳細挺好,適合程式執行緒概念入門)2、C++物件導向多執行緒程式設計(第2章,第3章)
3、C++多核高階程式設計(第5章,第6章)
第2,3這兩本書挺好的,尤其是C++多核高階程式設計(目前只看了前7章,感覺很好)。
最下面這本作業系統的書也挺好的,非常適合作業系統概念入門,我看的第一本作業系統的書,講的非常好。
重點大學計算機專業系列教材:作業系統 ----諶衛軍,王浩娟 著
相關文章
- 程式和執行緒的區別與聯絡執行緒
- 【作業系統】程式與執行緒作業系統執行緒
- 作業系統中的程式與執行緒作業系統執行緒
- 作業系統-執行緒和程式的區別作業系統執行緒
- 作業系統_程式和執行緒的區別作業系統執行緒
- PHP的執行緒安全與非執行緒安全版本的區別PHP執行緒
- Java 執行緒和作業系統的執行緒有啥區別?Java執行緒作業系統
- 程式與執行緒區別執行緒
- 執行緒與程式之間有什麼關係?Linux執行緒與程式有什麼區別?執行緒Linux
- 程式與執行緒的區別執行緒
- 程式執行緒新解:什麼是程式?什麼是執行緒?執行緒
- 什麼是執行緒安全和執行緒不安全執行緒
- 【作業系統】程式的描述與控制[執行緒](4)作業系統執行緒
- Linux中程式和執行緒的區別與聯絡,建議收藏!Linux執行緒
- 一篇讓你明白程式與執行緒之間的區別與聯絡執行緒
- 【多執行緒與高併發】Java守護執行緒是什麼?什麼是Java的守護執行緒?執行緒Java
- 作業系統-執行緒作業系統執行緒
- 執行緒、執行緒與程式、ULT與KLT執行緒
- 程式、執行緒和協程之間的區別和聯絡執行緒
- Linux執行緒與程式的區別Linux執行緒
- Linux程式與執行緒的區別Linux執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 【多執行緒總結(二)-執行緒安全與執行緒同步】執行緒
- 多執行緒:繼承方式和實現方式的聯絡與區別執行緒繼承
- 作業系統知識回顧(2)--程式與執行緒作業系統執行緒
- 程式設計思想之多執行緒與多程式(2):執行緒優先順序與執行緒安全程式設計執行緒
- 詳解作業系統中程式與執行緒作業系統執行緒
- Java執行緒(一):執行緒安全與不安全Java執行緒
- 作業系統:多執行緒作業系統執行緒
- Java執行緒面試題(04) Java中程式與執行緒的真實區別Java執行緒面試題
- Linux中程式與程式、執行緒的區別!Linux執行緒
- 程式設計思想之多執行緒與多程式(1):以作業系統的角度述說執行緒與程式程式設計執行緒作業系統
- 執行緒與多執行緒執行緒
- 什麼是程式(執行緒)同步執行緒
- 執行緒 並行 與 併發 的區別執行緒並行
- LINUX作業系統知識:程式與執行緒詳解Linux作業系統執行緒
- 程式與執行緒執行緒
- 執行緒與程式執行緒