什么是線程什么是進程

先舉一個例子:

當我們使用VsCode時,如果開啟了自動保存功能。那么我們在寫代碼時,VsCode需要做兩件事情,第一件事情是,監(jiān)聽我打字輸入的狀態(tài);第二件事情是,每5分鐘保存一次代碼。
如果這個進程中只有一個線程的話,那么當VsCode在對代碼進行保存時,它就不能監(jiān)聽我打字輸入的狀態(tài)了,我的任何輸入都會沒有響應,這種用戶體驗是十分不好的。
所以我們需要使用多線程,每個線程處理自己那一部分任務,而不用關心會和其他線程的沖突。線程1用于響應鍵盤,線程2用于自動保存。

進程

進程是并發(fā)執(zhí)行程序在執(zhí)行過程中資源分配的最小單位

線程

線程是程序執(zhí)行的最小單位

線程與進程的區(qū)別

  • 一個進程中可以有多個線程,線程依賴于進程
  • 每個進程都擁有獨立的內存地址空間,而線程共享進程的這個內存地址空間

多線程的好處:

  1. 線程更輕量級,線程創(chuàng)建和銷毀的代價更小
  2. 線程提高了性能。雖然線程從宏觀角度來說是并行的,但其實從微觀角度來說,還是串行的,從這一個角度來看,并沒有提高性能。但是,當某些線程涉及到等待資源的時候(比如等待輸入),多線程允許進程中的其他線程繼續(xù)執(zhí)行,而不是整個進程被阻塞,因此,提高了cpu的利用率。
  3. 在多cpu或者多核的情況下,線程宏觀,微觀都是并行的。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容