进程和线程的定义和区别
生活随笔
收集整理的這篇文章主要介紹了
进程和线程的定义和区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
進程:進程是系統分配資源和調度的基本單位,也就是說進程可以單獨運行一段程序。
線程:線程是cpu調度和分派的最小基本單位。
區別:
1.一個進程可以包含至少一個線程,一般來說也就是主線程,而一個線程只能屬于一個進程;
2.進程擁有獨立的內存,而線程沒有獨立的資源空間, 只是暫時存儲在計數器,寄存器,棧中,同一個進程間的線程可以共享資源。
3.將代碼放入到代碼區之后,進程產生,但還沒執行,我們所說的執行一般是是主線程main函數開始執行。
4.進程比線程更加消耗資源
5.進程對資源的保護要求高,而線程要求不高
6.進程是處理器這一層面的抽象,而線程是進程的基礎上進一步并發的抽象
7.同一個進程下,一個線程的掛掉,會導致整個進程的掛掉,而進程之間不會相互影響
8.總的來說:我們都知道程序不能單獨運行,只有將它放入內存中,分配資源才能運行,程序是指令的集合,而進程是程序的一次執行活動,屬于動態概念
9.我們可以打個比方:進程相當于某一個大型項目,世界上可能有人同時在做這個項目,有其獨特的方式;而線程就相當于這個項目下的一些程序員,多個程序員去完成這一個項目肯定要比一個人完成快的多,也就是能在同一時間操作。
決定同步:
1.互斥鎖:同一個進程下,當某個線程使用進程的共享資源時,其他線程必須等待該線程結束
2.信號量:進程擁有同一時間最大訪問數量
總結
以上是生活随笔為你收集整理的进程和线程的定义和区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java当中的HashSet
- 下一篇: 文件IO流