談談進程和線程的聯繫與區別

什麼是進程?

舉個栗子,如下圖:打開任務管理器
在這裏插入圖片描述
進程負責爲程序的運行提供必備的環境。

進程就相當於工廠中的車間一樣。

什麼是線程?

線程是計算機中的最小計算單位,線程負責執行進程中的程序。

線程就想當於工廠中的工人。

單線程

  • 一個線程(一個人幹活)

多線程

  • 多個線程(多個人幹一個活)

單線程好還是多線程好?

大家都知道是多線程更好,速度更快,大家一起幹活效率更高。但是單線程和多線程之間也沒有絕對的好壞,主流還是多線程比較好。

但我們的js、瀏覽器都是單線程的,理論上一個線程負責渲染頁面,一個線程負責執行js代碼,會發現一個問題:當一個線程在渲染頁面時,另一個在改css樣式,這時候頁面就不知道該聽誰的,所以js都是單線程的,只要在執行js代碼時,網頁都是靜止的,停止渲染,在執行完之後才進行頁面渲染。

傳統的服務器都是多線程的。 這意味着每次進來一個請求,就創建一個線程去處理請求。

Node的服務器是單線程的。 Node處理請求時是單線程的,但是在後臺擁有一個I/O線程池。

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