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

全國咨詢/投訴熱線:400-618-4000

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

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

好口碑IT培訓


如何理解進程?

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

·當一個程序被運行,從磁盤加載這個程序的代碼至內(nèi)存,這時就開啟了一個進程。

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


如何理解線程?

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

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

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


進程和線程對比

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

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

·進程間通信較為復雜

同一臺計算機的進程通信稱為IPC(Inter-process communication);不同計算機之間的進程通信,需要通過網(wǎng)絡,并遵守共同的協(xié)議,例如HTTP

·線程通信相對簡單,因為它們共享進程內(nèi)的內(nèi)存,一個例子是多個線程可以訪問同一個共享變量

·線程更輕量,線程上下文切換成本一般上要比進程上下文切換低


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




猜你喜歡:

什么是線程?線程的分類

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

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

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

傳智教育java高手班

0 分享到:
和我們在線交談!