ios面試問題——進程和線程的差別

線程是指進程內的一個執行單元,也是進程內的可調度實體。進程和線程的主要差別在於它們是不同的操作系統資源管理方式。進程有獨立的地址空間,一個進程崩潰後,在保護模式下不會對其它進程產生影響,而線程只是一個進程中的不同執行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等於整個進程死掉,所以多進程的程序要比多線程的程序 健壯,但在進程切換時,耗費資源較大,效率要差一些。但對於一些要求同時進行並且又要共享某些變量的併發操作,只能用線程,不能用進程。

區別1:調度。線程作爲調度和分配的基本單位,進程作爲擁有資源的基本單位。

區別2:併發性。不僅進程之間可以併發執行,同一個進程的多個線程之間也可以併發執行。

區別3:擁有資源。進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬於進程的資源。

區別4:系統開銷。在創建或撤銷進程時,由於系統都要爲之分配和回收資源,導致系統的開銷明顯大於創建或撤銷線程時的開銷。


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