關於多線程與異步的部分問題的總結

說到寫代碼,也算是一個業餘的選手的,現在在寫一個項目,中間遇到了一些問題,主要是異步的問題,所以翻書查看了部分的文章,現在進行一下總結吧。
:首先明白一下多線程與多進程的關係吧。
1.1 進程:程序在我們寫完後,是一個靜態的狀態,並沒有運行,二進程就是程序的動態執行的過程,她是代碼加載,執行到執行完畢的整個生命週期裏
關鍵點:1一個N核的處理器最多同時處理N個進程,而我們說的操作系統同時處理多個進程的原因是CPU具有分時機制,它會給每個進程隨機的分配時間進行處理,由於CPU速度快,所以有了“同時”的錯覺。
2 另外我們要強調的是每個進程都有自己的內存空間
.3 進程的主要狀態有三個,分別爲就緒狀態,執行狀態,阻塞狀態,三者的定義在這裏沒必要進行介紹,用文字描述一下三者的關係吧,程序Run後,進入了就緒狀態,等待CPU 分配時間,得到時間後進入了執行階段,時間片用完後返回到就緒狀態,等待下一次的CPU分配時間。在執行狀態時,如果遇到“I/O時間發生”,進程進入阻塞狀態,事件結束之後,進程由阻塞狀態編程就緒狀態。讀者可以自己畫一下聯繫圖。
1.2 線程:線程在進程的基礎岸上的進一步劃分,一個進程至少有一個線程,線程是進程的一個執行路徑,共享一個內存空間,線程可以自由切換,併發執行。
線程與進行區別:我們編寫程序的時候都是以線程爲基礎進行的編寫,打個必須的,你邊吃飯,邊在網上聊天,這裏,吃飯個聊天就是兩個進程,每個進程都有自己的內存空間(桌子,電腦),CPU就是你自己(單核),你自己只能吃飯或者聊天,自己分配時間。線程的,就是你可能同時和很多人一起聊天,這就是不同的線程。

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