小猿圈操做系統之進程和線程區別

進程與線程常常會放到一塊兒說起,無論是學習linux、python仍是其餘語言,進程和線程都會用到,那麼他們之間有什麼練習和區別呢?今天小猿圈加加就說一下他們之間的關係。python

1、定義linux

進程(Process):是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操做系統結構的基礎。它的執行須要系統分配資源建立實體以後,才能進行。多線程

線程(Threading):也叫做輕量級進程,是一個基本的CPU執行單元,也是程序執行過程當中的最小的單元。線程的特色就是在不須要獨立資源的狀況下就能夠運行。併發

2、功能學習

每個程序都至少有一個線程,若程序只有一個線程,那麼就是程序自己。操作系統

單線程的進程能夠簡單的認爲只有一個線程的進程。線程

一個進程在同一時間只作一件事,有了多線程後一個進程同一時間能夠作多件事。對象

每一個線程能夠處理不一樣的事務。進程

不管系統有幾個CPU,即便進程運行在單CPU上,多線程也能夠是進程併發處理多個事務。事務

一個線程阻塞不會影響到另外一個線程。

多線程的進程能夠儘量的利用系統CPU資源。

但也不是線程越多越好,線程越好,CPU分配給每一個線程的時間片就越少。

進程在執行過程當中擁有獨立的內存單元,而同一個進程中的多個線程共享內存,擁有本身的棧空間,擁有獨立的執行序列。分配資源時的對象必須是進程,不會給一個線程單獨分配系統管理的資源。

進程有獨立的地址空間,一個進程崩潰後,在保護模式下不會對其它進程產生影響,多進程環境中,任何一個進程的終止,不會影響到其餘進程。而線程只是一個進程中的不一樣執行路徑。線程有本身的堆棧和局部變量,但線程之間沒有單獨的地址空間,線程間是彼此依存的。多線程環境中,父線程終止,所有子線程被迫終止(沒有了資源)。

進程和線程小編從定義和功能來講他們區別,不瞭解他們區別的小夥伴,如今對進程和線程有了新的認識吧,想要深刻了解進程和線程,以及怎麼建立線程,能夠去小猿圈學習一下深層次的東西,但願大家能夠對操做系統有深刻的瞭解。

相關文章
相關標籤/搜索