操作系統(tǒng)中并行和并發(fā)的區(qū)別是什么?并發(fā)和并行是兩個(gè)相似但不同的概念:并發(fā),也稱為并行,是指處理多個(gè)同時(shí)發(fā)生的活動(dòng)的能力;并發(fā)是指同時(shí)發(fā)生的兩個(gè)并發(fā)事件,有并發(fā)的意思,但并發(fā)不一定是平行的,也就是說并發(fā)事件不一定要同時(shí)發(fā)生。操作系統(tǒng)中的并行和并發(fā)是什么意思。
多線程是指在一個(gè)軟件進(jìn)程中使用多個(gè)處理線程,也就是說同一套軟件中的數(shù)據(jù)在多個(gè)軟件客戶端和服務(wù)器中進(jìn)行處理??梢允窃谕慌_(tái)電腦或服務(wù)器上打開多個(gè)軟件,但更多的是指通過網(wǎng)絡(luò)連接多個(gè)客戶端和服務(wù)器進(jìn)行數(shù)據(jù)處理。它是一種軟件結(jié)構(gòu),將海量數(shù)據(jù)分布在不同的計(jì)算機(jī)或軟件中,分別進(jìn)行處理。并發(fā)意味著兩個(gè)或更多的事件同時(shí)發(fā)生。并發(fā)意味著兩個(gè)或多個(gè)事件在同一時(shí)間間隔發(fā)生。
多線程程序中經(jīng)常用到并發(fā)、并行、同步、異步這幾個(gè)概念,下面就說說我理解的這兩個(gè)概念的聯(lián)系和區(qū)別。而且兩個(gè)或兩個(gè)以上的事件發(fā)生在同一個(gè)時(shí)間段(注意:這里指的時(shí)間段是微觀的,所以很短,我們感覺不到事件之間的時(shí)間差)是很離譜的。并發(fā)意味著應(yīng)用程序同時(shí)在多個(gè)任務(wù)上取得進(jìn)展。然后,如果計(jì)算機(jī)只有一個(gè)CPU,應(yīng)用程序可能不會(huì)同時(shí)完成多個(gè)任務(wù),但它在應(yīng)用程序中的某個(gè)時(shí)間正在處理多個(gè)任務(wù)。
平行意味著兩個(gè)或更多的事件同時(shí)發(fā)生。并行性意味著應(yīng)用程序被分成更小的子任務(wù),這些子任務(wù)可以并行處理,例如,當(dāng)多個(gè)CPU同時(shí)工作時(shí)。如上所述,并發(fā)性與應(yīng)用程序處理多個(gè)任務(wù)的方式有關(guān)。一個(gè)應(yīng)用程序可以一次處理一個(gè)任務(wù)(按順序),也可以同時(shí)處理多個(gè)任務(wù)。另一方面,并行性與應(yīng)用如何處理每個(gè)單獨(dú)的任務(wù)有關(guān)。應(yīng)用程序可以從頭到尾處理連續(xù)的任務(wù),或者將任務(wù)分解成并行完成的子任務(wù)。
3、兩個(gè)程序是并發(fā)還是并行1。在時(shí)間軸上切一刀。如果橫截面上有兩個(gè)或兩個(gè)以上正在運(yùn)行的進(jìn)程,則為并發(fā)。如果只有一個(gè),可能是并行,也可能是串行。2.在時(shí)間軸上,截取一段時(shí)間。如果在此期間只有一個(gè)進(jìn)程在運(yùn)行,則它是串行的。如果在此期間有兩個(gè)或更多的進(jìn)程在運(yùn)行,那么它就是并行的。并發(fā)和并行是兩個(gè)相似但不同的概念:并發(fā),也稱為并行,是指處理多個(gè)同時(shí)發(fā)生的活動(dòng)的能力;并發(fā)是指同時(shí)發(fā)生的兩個(gè)并發(fā)事件,有并發(fā)的意思,但并發(fā)不一定是平行的,也就是說并發(fā)事件不一定要同時(shí)發(fā)生。
我們舉個(gè)例子來理解,比如假設(shè)A和B兩個(gè)事件并行:如果A和B都發(fā)生在15: 30,A運(yùn)行5分鐘,B運(yùn)行8分鐘。前5分鐘是并行的,包括并發(fā),因?yàn)槎际峭瑫r(shí)發(fā)生的:如果A發(fā)生在15: 30,3分鐘后,事件B就會(huì)發(fā)生,在接下來的5分鐘內(nèi)。
4、并發(fā)、多線程、并行分別是啥意思?進(jìn)程和線程是操作系統(tǒng)經(jīng)歷的程序運(yùn)行的基本單元,系統(tǒng)利用這個(gè)基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用的并發(fā)。進(jìn)程和線程的區(qū)別在于:簡而言之,程序至少有一個(gè)進(jìn)程,進(jìn)程至少有一個(gè)線程。也就是說,一個(gè)進(jìn)程可以有很多線程?!安⑿小本褪莾烧咭黄饒?zhí)行,無論是微觀還是宏觀,就像兩個(gè)人在用鏟子挖一個(gè)坑,一個(gè)小時(shí)后,每個(gè)人都有一個(gè)大坑。
5、操作系統(tǒng)里的并行性和并發(fā)性指什么?“并發(fā)”是指兩者一起執(zhí)行,無論是微觀還是宏觀,就像兩個(gè)人在用鏟子挖坑,一個(gè)小時(shí)后,每個(gè)人都有一個(gè)大坑。\\\\x0d\\\\x0a“并發(fā)”不是同時(shí)執(zhí)行,而是把時(shí)間分成幾段,讓多個(gè)進(jìn)程快速交替執(zhí)行。在單處理器操作系統(tǒng)中,在特定時(shí)間只有一個(gè)程序在cup中運(yùn)行。
6、操作系統(tǒng)里的并行性和并發(fā)性有什么區(qū)別?“并發(fā)”是指兩個(gè)過程一起執(zhí)行,無論是微觀還是宏觀,就像兩個(gè)人在用鏟子挖坑,一個(gè)小時(shí)后,每個(gè)人都有一個(gè)大坑。而“并發(fā)”在micro中并不是同時(shí)執(zhí)行,只是把時(shí)間分成幾段,讓多個(gè)進(jìn)程快速交替執(zhí)行。從宏觀上看,這些進(jìn)程似乎都在執(zhí)行不同類型的操作。在單處理器操作系統(tǒng)中,在特定時(shí)間只有一個(gè)程序在cup中運(yùn)行。
7、并發(fā)性和并行性的區(qū)別并行我們玩電腦的時(shí)候,電腦可以同時(shí)運(yùn)行音樂軟件和IDEA。我們可以一邊敲代碼一邊聽音樂,電腦同時(shí)在做很多事情。在單核cpu計(jì)算機(jī)中,我們似乎也可以“同時(shí)”做這些事情,但這并不是真正的并行。底層是cpu快速切換執(zhí)行任務(wù),給我們一種同時(shí)運(yùn)行的錯(cuò)覺。但是,當(dāng)計(jì)算機(jī)是多核cpu時(shí),當(dāng)一個(gè)CPU執(zhí)行一個(gè)進(jìn)程時(shí),另一個(gè)CPU可以執(zhí)行另一個(gè)進(jìn)程,兩個(gè)進(jìn)程可以同時(shí)進(jìn)行,不會(huì)搶占CPU資源。這時(shí)候才是真正的“同時(shí)”,也就是所謂的并行。
并發(fā)并發(fā)指的是同一時(shí)間段內(nèi)發(fā)生的多件事。同樣,我們可以以網(wǎng)吧為例,比如一個(gè)網(wǎng)吧,每天晚上6點(diǎn)到10點(diǎn)用戶量很大,可以稱之為大并發(fā)。如果網(wǎng)吧里有100臺(tái)電腦,但是晚上6點(diǎn)到10點(diǎn)有150個(gè)人來上網(wǎng),那么這50個(gè)人就不能正常上網(wǎng),要么就在這里等,要么就離開網(wǎng)吧。