什麼是進程?什麼是線程?

什麼是進程?

電腦中時會有很多單獨運行的程序,每個程序有一個獨立的進程,而進程之間是相互獨立存在的。比如下圖中的QQ、酷狗播放器、電腦管家等等。

什麼是進程?什麼是線程?

更多C/C++資料私信我 “代碼” 獲取

什麼是線程?

進程想要執行任務就需要依賴線程。換句話說,就是進程中的最小執行單位就是線程,並且一個進程中至少有一個線程。

那什麼是多線程?提到多線程這裡要說兩個概念,就是串行和並行,搞清楚這個,我們才能更好地理解多線程。

所謂串行,其實是相對於單條線程來執行多個任務來說的,我們就拿下載文件來舉個例子:當我們下載多個文件時,在串行中它是按照一定的順序去進行下載的,也就是說,必須等下載完A之後才能開始下載B,它們在時間上是不可能發生重疊的。

什麼是進程?什麼是線程?

更多C/C++資料私信我 “代碼” 獲取

並行:下載多個文件,開啟多條線程,多個文件同時進行下載,這裡是嚴格意義上的,在同一時刻發生的,並行在時間上是重疊的。

什麼是進程?什麼是線程?

更多C/C++資料私信我 “代碼” 獲取

瞭解了這兩個概念之後,我們再來說說什麼是多線程。舉個例子,我們打開騰訊管家,騰訊管家本身就是一個程序,也就是說它就是一個進程,它裡面有很多的功能,我們可以看下圖,能查殺病毒、清理垃圾、電腦加速等眾多功能。

按照單線程來說,無論你想要清理垃圾、還是要病毒查殺,那麼你必須先做完其中的一件事,才能做下一件事,這裡面是有一個執行順序的。

如果是多線程的話,我們其實在清理垃圾的時候,還可以進行查殺病毒、電腦加速等等其他的操作,這個是嚴格意義上的同一時刻發生的,沒有執行上的先後順序。

什麼是進程?什麼是線程?

更多C/C++資料私信我 “代碼” 獲取

以上就是,一個進程運行時產生了多個線程。

在瞭解完這個問題後,大家可以去了解——線程安全問題。


分享到:


相關文章: