一、線程與進程
1.概念
線程:是程序執(zhí)行流的最小單元,是系統(tǒng)獨立調(diào)度和分配CPU(獨立運行)的基本單位。
進程:是資源分配的基本單位。一個進程包括多個線程。
2.區(qū)別:
1、線程與資源分配無關,它屬于某一個進程,并與進程內(nèi)的其他線程一起共享進程的資源。
2、每個進程都有自己一套獨立的資源(數(shù)據(jù)),供其內(nèi)的所有線程共享。
3、不論是大小,開銷線程要更“輕量級”
4、一個進程內(nèi)的線程通信比進程之間的通信更快速,有效。(因為共享變量)
二、多線程與多進程
多線程:同一時刻執(zhí)行多個線程。如,用瀏覽器一邊下載,一邊聽歌,一邊看視頻,一邊看網(wǎng)頁......
多進程:同時執(zhí)行多個程序。如,同事運行YY,QQ,以及各種瀏覽器。
三、并發(fā)與并行
并發(fā):當有多個線程在操作時,如果系統(tǒng)只有一個CPU,則它根本不可能真正同時進行一個以上的線程,它只能把CPU運行時間劃分成若干個時間段,再將時間 段分配給各個線程執(zhí)行,在一個時間段的線程代碼運行時,其它線程處于掛起狀。.這種方式我們稱之為并發(fā)(Concurrent)。
并行:當系統(tǒng)有一個以上CPU時,則線程的操作有可能非并發(fā)。當一個CPU執(zhí)行一個線程時,另一個CPU可以執(zhí)行另一個線程,兩個線程互不搶占CPU資源,可以同時進行,這種方式我們稱之為并行(Parallel)。
強烈注意:多核,多cup,多機是不同的概念。
補充:
多內(nèi)核是指在一枚處理器中集成兩個或多個完整的計算引擎(內(nèi)核)。
多核心cpu主要分原生多核和封裝多核。
- 原生多核指的是真正意義上的多核,每個核心之間都是完全獨立的,都擁有自己的前端總線,不會造成沖突,即使在高負載狀況下,每個核心都能保證自己的性能不受太大的影響,通俗的說,原生多核的抗壓能力強,但是需要先進的工藝,每擴展一個核心都需要很多的研發(fā)時間。
- 封裝多核是只把多個核心直接封裝在一起,和原生的比起來還是差了很多,而且后者成本比較高,優(yōu)點在于多核心的發(fā)展要比原生快的多。
多個處理機及存儲器模塊構成的并行處理機被稱為多處理機系統(tǒng)(multiprocessor system),簡稱多處理機。多機系統(tǒng)是將多個VLSI(超大規(guī)模集成電路)工藝集成的微處理機芯片結(jié)合在一起,由多個處理機并行工作以達到所需的高速度的,因此多機系統(tǒng)實際上是并行處理技術和VLSI技術相結(jié)合的產(chǎn)物。
-
線程
+關注
關注
0文章
508瀏覽量
20761 -
進程
+關注
關注
0文章
208瀏覽量
14478
原文標題:基礎知識:線程,進程,多進程,多線程,并發(fā),并行的區(qū)別
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
多線程的系統(tǒng)
系統(tǒng)調(diào)用和API有什么區(qū)別呢?
Linux多線程對比單線程的優(yōu)勢
飛凌嵌入式ElfBoard-文件I/O的了解探究之競爭冒險
tcpip線程被mu0鎖住導致網(wǎng)絡線程無法使用怎么解決?
在線程刪除時遇到斷言,是什么原因?qū)е碌模?/a>
rtth studio中nano 如何創(chuàng)建動態(tài)線程?
【HZ-T536開發(fā)板免費體驗】—— linux創(chuàng)建線程
隔離屏障的概念以及工作電壓和測試電壓之間的區(qū)別
多線程的安全注意事項
Linux進程狀態(tài)詳解
進程、線程、協(xié)程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!
請問如何在Python中實現(xiàn)多線程與多進程的協(xié)作?
深入解析Linux程序與進程

線程與進程的概念與區(qū)別
評論