一、線程與進(jìn)程
1.概念
線程:是程序執(zhí)行流的最小單元,是系統(tǒng)獨(dú)立調(diào)度和分配CPU(獨(dú)立運(yùn)行)的基本單位。
進(jìn)程:是資源分配的基本單位。一個(gè)進(jìn)程包括多個(gè)線程。
2.區(qū)別:
1、線程與資源分配無(wú)關(guān),它屬于某一個(gè)進(jìn)程,并與進(jìn)程內(nèi)的其他線程一起共享進(jìn)程的資源。
2、每個(gè)進(jìn)程都有自己一套獨(dú)立的資源(數(shù)據(jù)),供其內(nèi)的所有線程共享。
3、不論是大小,開銷線程要更“輕量級(jí)”
4、一個(gè)進(jìn)程內(nèi)的線程通信比進(jìn)程之間的通信更快速,有效。(因?yàn)楣蚕碜兞浚?/p>
二、多線程與多進(jìn)程
多線程:同一時(shí)刻執(zhí)行多個(gè)線程。如,用瀏覽器一邊下載,一邊聽歌,一邊看視頻,一邊看網(wǎng)頁(yè)......
多進(jìn)程:同時(shí)執(zhí)行多個(gè)程序。如,同事運(yùn)行YY,QQ,以及各種瀏覽器。
三、并發(fā)與并行
并發(fā):當(dāng)有多個(gè)線程在操作時(shí),如果系統(tǒng)只有一個(gè)CPU,則它根本不可能真正同時(shí)進(jìn)行一個(gè)以上的線程,它只能把CPU運(yùn)行時(shí)間劃分成若干個(gè)時(shí)間段,再將時(shí)間 段分配給各個(gè)線程執(zhí)行,在一個(gè)時(shí)間段的線程代碼運(yùn)行時(shí),其它線程處于掛起狀。.這種方式我們稱之為并發(fā)(Concurrent)。
并行:當(dāng)系統(tǒng)有一個(gè)以上CPU時(shí),則線程的操作有可能非并發(fā)。當(dāng)一個(gè)CPU執(zhí)行一個(gè)線程時(shí),另一個(gè)CPU可以執(zhí)行另一個(gè)線程,兩個(gè)線程互不搶占CPU資源,可以同時(shí)進(jìn)行,這種方式我們稱之為并行(Parallel)。
強(qiáng)烈注意:多核,多cup,多機(jī)是不同的概念。
補(bǔ)充:
多內(nèi)核是指在一枚處理器中集成兩個(gè)或多個(gè)完整的計(jì)算引擎(內(nèi)核)。
多核心cpu主要分原生多核和封裝多核。
- 原生多核指的是真正意義上的多核,每個(gè)核心之間都是完全獨(dú)立的,都擁有自己的前端總線,不會(huì)造成沖突,即使在高負(fù)載狀況下,每個(gè)核心都能保證自己的性能不受太大的影響,通俗的說(shuō),原生多核的抗壓能力強(qiáng),但是需要先進(jìn)的工藝,每擴(kuò)展一個(gè)核心都需要很多的研發(fā)時(shí)間。
- 封裝多核是只把多個(gè)核心直接封裝在一起,和原生的比起來(lái)還是差了很多,而且后者成本比較高,優(yōu)點(diǎn)在于多核心的發(fā)展要比原生快的多。
多個(gè)處理機(jī)及存儲(chǔ)器模塊構(gòu)成的并行處理機(jī)被稱為多處理機(jī)系統(tǒng)(multiprocessor system),簡(jiǎn)稱多處理機(jī)。多機(jī)系統(tǒng)是將多個(gè)VLSI(超大規(guī)模集成電路)工藝集成的微處理機(jī)芯片結(jié)合在一起,由多個(gè)處理機(jī)并行工作以達(dá)到所需的高速度的,因此多機(jī)系統(tǒng)實(shí)際上是并行處理技術(shù)和VLSI技術(shù)相結(jié)合的產(chǎn)物。
-
線程
+關(guān)注
關(guān)注
0文章
507瀏覽量
20101 -
進(jìn)程
+關(guān)注
關(guān)注
0文章
206瀏覽量
14229
原文標(biāo)題:基礎(chǔ)知識(shí):線程,進(jìn)程,多進(jìn)程,多線程,并發(fā),并行的區(qū)別
文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux進(jìn)程狀態(tài)詳解

進(jìn)程、線程、協(xié)程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!
請(qǐng)問(wèn)如何在Python中實(shí)現(xiàn)多線程與多進(jìn)程的協(xié)作?
FCCSP與FCBGA都是倒裝有什么區(qū)別

國(guó)產(chǎn)GPU獨(dú)角獸摩爾線程啟動(dòng)上市輔導(dǎo)
socket 多線程編程實(shí)現(xiàn)方法
一文搞懂Linux進(jìn)程的睡眠和喚醒
Python中多線程和多進(jìn)程的區(qū)別

CPU線程和程序線程的區(qū)別
socket的基本概念和原理
摩爾線程與國(guó)內(nèi)EDA企業(yè)合作加速GPU芯片設(shè)計(jì)
摩爾線程與樂(lè)創(chuàng)能源共同研發(fā)能源大模型
探索虛擬線程:原理與實(shí)現(xiàn)

評(píng)論