教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

進(jìn)程和線(xiàn)程的區(qū)別和聯(lián)系是什么?【領(lǐng)取Java并發(fā)教程】

更新時(shí)間:2021年09月28日18時(shí)21分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)


如何理解進(jìn)程?

·程序由指令和數(shù)據(jù)組成,但這些指令要運(yùn)行,數(shù)據(jù)要讀寫(xiě),就必須將指令加載至CPU,數(shù)據(jù)加載至內(nèi)存。在指令運(yùn)行過(guò)程中還需要用到磁盤(pán)、網(wǎng)絡(luò)等設(shè)備。進(jìn)程就是用來(lái)加載指令、管理內(nèi)存、管理IO的。

·當(dāng)一個(gè)程序被運(yùn)行,從磁盤(pán)加載這個(gè)程序的代碼至內(nèi)存,這時(shí)就開(kāi)啟了一個(gè)進(jìn)程。

·進(jìn)程就可以視為程序的一個(gè)實(shí)例。大部分程序可以同時(shí)運(yùn)行多個(gè)實(shí)例進(jìn)程(例如記事本、畫(huà)圖、瀏覽器等),也有的程序只能啟動(dòng)一個(gè)實(shí)例進(jìn)程(例如網(wǎng)易云音樂(lè)、360 安全衛(wèi)士等)。


如何理解線(xiàn)程?

·一個(gè)進(jìn)程之內(nèi)可以分為一到多個(gè)線(xiàn)程。

·一個(gè)線(xiàn)程就是一個(gè)指令流,將指令流中的一條條指令以一定的順序交給CPU執(zhí)行

·Java中,線(xiàn)程作為最小調(diào)度單位,進(jìn)程作為資源分配的最小單位。 在windows中進(jìn)程是不活動(dòng)的,只是作為線(xiàn)程的容器。


進(jìn)程和線(xiàn)程對(duì)比

·進(jìn)程基本上相互獨(dú)立的,而線(xiàn)程存在于進(jìn)程內(nèi),是進(jìn)程的一個(gè)子集;

·進(jìn)程擁有共享的資源,如內(nèi)存空間等,供其內(nèi)部的線(xiàn)程共享

·進(jìn)程間通信較為復(fù)雜

同一臺(tái)計(jì)算機(jī)的進(jìn)程通信稱(chēng)為IPC(Inter-process communication);不同計(jì)算機(jī)之間的進(jìn)程通信,需要通過(guò)網(wǎng)絡(luò),并遵守共同的協(xié)議,例如HTTP

·線(xiàn)程通信相對(duì)簡(jiǎn)單,因?yàn)樗鼈児蚕磉M(jìn)程內(nèi)的內(nèi)存,一個(gè)例子是多個(gè)線(xiàn)程可以訪(fǎng)問(wèn)同一個(gè)共享變量

·線(xiàn)程更輕量,線(xiàn)程上下文切換成本一般上要比進(jìn)程上下文切換低


添加QQ:435946716(備注獲取Java并發(fā)編程實(shí)戰(zhàn)教程),可以免費(fèi)領(lǐng)取Java并發(fā)視頻教程+筆記+源碼。




猜你喜歡:

什么是線(xiàn)程?線(xiàn)程的分類(lèi)

Java線(xiàn)程的生命周期和各種狀態(tài)轉(zhuǎn)換詳解

怎樣保障多線(xiàn)程同步數(shù)據(jù)的安全?

Java創(chuàng)建線(xiàn)程的方式和優(yōu)缺點(diǎn)

傳智教育java高手班

0 分享到:
和我們?cè)诰€(xiàn)交談!