多进程与多线程的区别 - jihite
多進(jìn)程與多線程的區(qū)別 - jihite
博客園-所有隨筆區(qū) 原文? http://www.cnblogs.com/kaituorensheng/p/3603057.html? ? ? 進(jìn)程是程序在計算機(jī)上的一次執(zhí)行活動。當(dāng)你運行一個程序,你就啟動了一 個進(jìn)程。顯然,程序是死的(靜態(tài)的),進(jìn)程是活的(動態(tài)的)。進(jìn)程可以分為系統(tǒng)進(jìn)程和用戶進(jìn)程。凡是用于完成操作系統(tǒng)的各種功能的進(jìn)程就是系統(tǒng)進(jìn)程,它們就是處于運行狀態(tài)下的操作系統(tǒng)本身;所有由你啟動的進(jìn)程都是用戶進(jìn)程。進(jìn)程是操作系統(tǒng)進(jìn)行 資源分配 的單位。在Windows下,進(jìn)程又被細(xì)化為線程,也就是一個進(jìn)程下有多個能 獨立運行 的更小的單位。
? ? ? 在同一個時間里,同一個計算機(jī)系統(tǒng)中如果允許兩個或兩個以上的 進(jìn)程 處于運行狀態(tài),這便是多任務(wù)。現(xiàn)代的操作系統(tǒng)幾乎都是多任務(wù)操作系統(tǒng),能夠同時管理多個進(jìn)程的運行。多任務(wù)帶來的好處是明顯的,比如你可以邊聽mp3邊上網(wǎng),與此同時甚至可以將下載的文檔打印出來,而這些任務(wù)之間絲毫不會相互干擾。那么這里就涉及到并行的問題,俗話說,一心不能二用,這對計算機(jī)也一樣,原則上一個CPU只能分配給一個進(jìn)程,以便運行這個進(jìn)程。我們通常使用的計算機(jī)中只有一個CPU,也就是說只有一顆心,要讓它一心多用,同時運行多個進(jìn)程,就必須使用 并發(fā)技術(shù) 。實現(xiàn)并發(fā)技術(shù)相當(dāng)復(fù)雜,最容易理解的是“時間片輪轉(zhuǎn)進(jìn)程調(diào)度算法”,它的思想簡單介紹如下:在操作系統(tǒng)的管理下,所有正在運行的進(jìn)程輪流使用CPU,每個進(jìn)程允許占用CPU的時間非常短(比如10毫秒),這樣用戶根本感覺不出來CPU是在輪流為多個進(jìn)程服務(wù),就好象所有的進(jìn)程都在不間斷地運行一樣。但實際上在任何一個時間內(nèi)有且僅有一個進(jìn)程占有CPU。如果一臺計算機(jī)有多個CPU,情況就不同了,如果進(jìn)程數(shù)小于CPU數(shù),則不同的進(jìn)程可以分配給不同的CPU來運行,這樣,多個進(jìn)程就是真正同時運行的,這便是并行。但如果進(jìn)程數(shù)大于CPU數(shù),則仍然需要使用并發(fā)技術(shù)。在Windows中,進(jìn)行CPU分配是以 線程 為單位的,一個進(jìn)程可能由多個線程組成,這時情況更加復(fù)雜,但簡單地說,有如下關(guān)系:?
- 總線程數(shù)<=?CPU數(shù)量:并行運行
- 總線程數(shù)?> ?CPU數(shù)量:并發(fā)運行
并行運行的效率顯然高于并發(fā)運行,所以在多CPU的計算機(jī)中,多任務(wù)的效率比較高。但是,如果在多CPU計算機(jī)中只運行一個進(jìn)程
(線程),就不能發(fā)揮多CPU的優(yōu)勢。這里涉及到多任務(wù)操作系統(tǒng)的問題,多任務(wù)操作系統(tǒng)(如Windows)基本原理是:操作系統(tǒng)將CPU
的時間片分配給多個線程,每個線程在操作系統(tǒng)指定的時間片內(nèi)完成(注意,這里的多個線程是分屬于不同進(jìn)程的).操作系統(tǒng)不斷的從一個線程的執(zhí)行切換到另一個線程的執(zhí)行,如此往復(fù),宏觀上看來,就好像是多個線程在一起執(zhí)行.由于這多個線程分屬于不同的進(jìn)程,因此在我們看來,就好像是多個進(jìn)程在同時執(zhí)行,這樣就實現(xiàn)了多任務(wù)。
----------------------------------------------------------
進(jìn)程是資源分配的最小單位,線程是CPU調(diào)度的最小單位;進(jìn)程編程調(diào)試簡單可靠性高,但是創(chuàng)建銷毀開銷大;線程正相反,開銷小,切換速度快,但是編程調(diào)試相對復(fù)雜。
總結(jié)
以上是生活随笔為你收集整理的多进程与多线程的区别 - jihite的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.vue简介以及模板语法---vue教
- 下一篇: scp远程复制文件