在學習js其餘知識時,有時候會涉及到進程的問題,可是操做系統知識薄弱的我,沒有辦法跳過關於進程的知識,因此卡在了這裏,那就順便介紹一下我所理解的進程和線程吧!前端
由上圖能夠看出,他們是相互包含關係,即一個CPU中含有多個進程,一個進程又含有多塊內存空間,一個內存空間中有多個線程。
ps:每一個進程中的內存空間都是共享的,也就是該進程中的線程能夠出如今它的任何內存空間中。併發
咱們能夠把某個學校當成是一個CPU,學校裏的學院就是進程,一個學院中確定有教室,辦公室,會議室以及廁所等,這些就能夠看作是內存空間,那麼這個學院的學生就是線程(假設學院的學生是在學院內活動)。異步
在同一個學院中的學生能夠在學院的任何公共區域活動,對應的是一個進程中的每一個線程都共享內存空間,不是說每一個內存空間固定的就是那些線程。
ps:從某些角度講,這個例子並非很合適,可是能夠用來理解他們三個之間的關係。學習
注意:同步和異步是針對進程而言spa
注意:串行,並行和併發是針對線程而言操作系統
這裏面的知識若是深究的話有不少,這篇文章旨在幫助理解前端會涉及的一些關於進程的概念,幾乎全部的概念我都經過圖示表示了,若是有錯誤歡迎指正!線程