日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
面試突擊:進(jìn)程和線程有什么區(qū)別?

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

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了溆浦免費(fèi)建站歡迎大家使用!

轉(zhuǎn)載請(qǐng)聯(lián)系授權(quán)(微信ID:GG_Stone)

從用戶的角度來看,進(jìn)程是正在運(yùn)行的程序?qū)嵗?,而線程是進(jìn)程中真正執(zhí)行任務(wù)的基本單位。也就是說一個(gè)運(yùn)行的程序至少包含一個(gè)進(jìn)程,一個(gè)進(jìn)程至少包含一個(gè)線程,線程不能獨(dú)立于進(jìn)程而存在。

進(jìn)程

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

1.進(jìn)程編號(hào) PID:進(jìn)程的身份標(biāo)識(shí)。

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

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

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

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

5.內(nèi)存地址

線程

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

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

線程優(yōu)勢(shì)

線程是輕量級(jí)的進(jìn)程,一個(gè)進(jìn)程中包含了多個(gè)線程,因此多個(gè)線程間可以共享進(jìn)程資源,線程和進(jìn)程的關(guān)系如下圖所示:

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

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

進(jìn)程和線程的區(qū)別

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

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

進(jìn)程是正在運(yùn)行程序的實(shí)例,進(jìn)程中包含了線程,而線程中不能包含進(jìn)程。

區(qū)別2:描述側(cè)重點(diǎn)不同描述側(cè)重點(diǎn)不同:

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

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

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

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

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

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

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

總結(jié)

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


標(biāo)題名稱:面試突擊:進(jìn)程和線程有什么區(qū)別?
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/djsoesp.html