偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

面試突擊:進程和線程有什么區(qū)別?

開發(fā) 后端
進程是操作系統(tǒng)分配資源的基本單位,而線程是操作系統(tǒng)調度的基本單位。一個進程中至少包含一個線程,線程不能獨立于進程而存在。

作者:磊哥

來源 | Java面試真題解析(ID:aimianshi666)

轉載請聯(lián)系授權(微信ID:GG_Stone)

從用戶的角度來看,進程是正在運行的程序實例,而線程是進程中真正執(zhí)行任務的基本單位。也就是說一個運行的程序至少包含一個進程,一個進程至少包含一個線程,線程不能獨立于進程而存在。

進程

進程(Process)是操作系統(tǒng)分配資源的基本單位,一個進程擁有的資源有自己的堆、棧、虛存空間(頁表)、文件描述符等信息。從編程的角度來理解進程,可以把它看作是一個類或一個 PCB(Process Control Block)進程控制塊的結構體,這個結構體中大致包含以下幾個內容:

1.進程編號 PID:進程的身份標識。

2.進程的狀態(tài):

  • 新建狀態(tài)
  • 就緒狀態(tài)
  • 運行狀態(tài)
  • 阻塞狀態(tài)
  • 銷毀狀態(tài)

3.執(zhí)行優(yōu)先級

4.上下文:保存本次執(zhí)行狀態(tài),以便下次繼續(xù)執(zhí)行,這個過程就是一個上下文。

5.內存地址

線程

線程(Thread)是操作系統(tǒng)能夠進行運算調度的基本單位。它包含在進程中,是進程中的實際運行單位。在 Unix System V 及 SunOS 中線程也被稱為輕量進程(lightweight processes),但輕量進程更多指內核線程(kernel thread),而把用戶線程(user thread)稱為線程。

PS:用戶線程可以理解為應用程序自己的線程,由程序員創(chuàng)建并控制的線程;而內核線程是內核支持并使用的線程。

線程優(yōu)勢

線程是輕量級的進程,一個進程中包含了多個線程,因此多個線程間可以共享進程資源,線程和進程的關系如下圖所示:

其中,堆和方法區(qū)是可以共享的區(qū)域,而程序計數(shù)器和棧是每個線程私有的。

  • 程序計數(shù)器是一塊內存區(qū)域,用來記錄線程當前要執(zhí)行的指令地址。
  • 棧是用來記錄每個線程自己的局部變量的。
  • 堆中存放的是當前程序創(chuàng)建的所有對象。
  • 方法區(qū)存放的是常量和靜態(tài)變量等信息。

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

進程和線程的區(qū)別主要體現(xiàn)在以下幾點。

區(qū)別1:從屬關系不同從屬關系不同:

進程是正在運行程序的實例,進程中包含了線程,而線程中不能包含進程。

區(qū)別2:描述側重點不同描述側重點不同:

進程是操作系統(tǒng)分配資源的基本單位,而線程是操作系統(tǒng)調度的基本單位。

區(qū)別3:共享資源不同共享資源不同:

多個進程間不能共享資源,每個進程有自己的堆、棧、虛存空間(頁表)、文件描述符等信息,而線程可以共享進程資源文件(堆和方法區(qū))。

區(qū)別4:上下文切換速度不同上下文切換速度不同:

線程上下文切換速度很快(上下文切換指的是從一個線程切換到另一個線程),而進程的上下文切換的速度比較慢。

區(qū)別5:操縱者不同操縱者不同:

一般情況下進程的操縱者是操作系統(tǒng),而線程的操縱者是編程人員。

總結

進程是操作系統(tǒng)分配資源的基本單位,而線程是操作系統(tǒng)調度的基本單位。一個進程中至少包含一個線程,線程不能獨立于進程而存在。進程不能共享資源,而線程可以。線程可以看作是輕量級的進程,它們的主要區(qū)別體現(xiàn)在:從屬關系、描述側重點、共享資源、上下文切換速度和操縱對象等不同。

責任編輯:姜華 來源: Java面試真題解析
相關推薦

2022-08-22 07:06:32

MyBatisSQL占位符

2022-08-03 07:04:56

GETHTTPPOST

2022-08-10 07:06:57

IoCDISpring

2022-04-24 07:59:53

synchronizJVMAPI

2022-08-15 07:06:50

Propertiesyml配置

2022-03-16 07:33:40

守護線程用戶線程語言

2023-03-26 21:51:42

2022-04-26 08:02:00

locktryLocklockInterr

2022-10-09 20:52:19

事務隔離級別傳播機制

2022-05-09 07:37:04

Java非公平鎖公平鎖

2022-08-29 07:05:02

JSRJava語言

2022-01-11 06:53:23

面試重寫重載

2022-07-18 07:11:35

請求轉發(fā)請求重定數(shù)據(jù)共享

2024-04-03 15:33:04

JWTSession傳輸信息

2024-09-19 08:42:43

2022-06-13 07:36:06

MySQLInnoDB索引

2023-02-01 07:15:16

2023-02-17 08:02:45

@Autowired@Resource

2023-02-17 08:10:24

2025-07-08 08:57:29

點贊
收藏

51CTO技術棧公眾號