自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談進(jìn)程,線程以及多線程,多進(jìn)程的選擇

網(wǎng)絡(luò) 通信技術(shù)
我的理解是進(jìn)程是指在系統(tǒng)中正在運(yùn)行的一個(gè)應(yīng)用程序;程序一旦運(yùn)行就是進(jìn)程,或者更專業(yè)化來說:進(jìn)程是指程序執(zhí)行時(shí)的一個(gè)實(shí)例,線程是進(jìn)程的一個(gè)實(shí)體。

我的理解是進(jìn)程是指在系統(tǒng)中正在運(yùn)行的一個(gè)應(yīng)用程序;程序一旦運(yùn)行就是進(jìn)程,或者更專業(yè)化來說:進(jìn)程是指程序執(zhí)行時(shí)的一個(gè)實(shí)例,線程是進(jìn)程的一個(gè)實(shí)體。

進(jìn)程——資源分配的最小單位,線程——程序執(zhí)行的最小單位。

[[258231]]

線程進(jìn)程的區(qū)別體現(xiàn)在幾個(gè)方面:

0:因?yàn)檫M(jìn)程擁有獨(dú)立的堆??臻g和數(shù)據(jù)段,所以每當(dāng)啟動(dòng)一個(gè)新的進(jìn)程必須分配給它獨(dú)立的地址空間,建立眾多的數(shù)據(jù)表來維護(hù)它的代碼段、堆棧段和數(shù)據(jù)段,這對(duì)于多進(jìn)程來說十分“奢侈”,系統(tǒng)開銷比較大,而線程不一樣,線程擁有獨(dú)立的堆棧空間,但是共享數(shù)據(jù)段,它們彼此之間使用相同的地址空間,共享大部分?jǐn)?shù)據(jù),比進(jìn)程更節(jié)儉,開銷比較小,切換速度也比進(jìn)程快,效率高,但是正由于進(jìn)程之間獨(dú)立的特點(diǎn),使得進(jìn)程安全性比較高,也因?yàn)檫M(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對(duì)其它進(jìn)程產(chǎn)生影響,而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑。一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉。

1:體現(xiàn)在通信機(jī)制上面,正因?yàn)檫M(jìn)程之間互不干擾,相互獨(dú)立,進(jìn)程的通信機(jī)制相對(duì)很復(fù)雜,譬如管道,信號(hào),消息隊(duì)列,共享內(nèi)存,套接字等通信機(jī)制,而線程由于共享數(shù)據(jù)段所以通信機(jī)制很方便。

2:屬于同一個(gè)進(jìn)程的所有線程共享該進(jìn)程的所有資源,包括文件描述符。而不同的進(jìn)程相互獨(dú)立。

3:線程又稱為輕量級(jí)進(jìn)程,進(jìn)程有進(jìn)程控制塊,線程有線程控制塊;

4:線程必定也只能屬于一個(gè)進(jìn)程,而進(jìn)程可以擁有多個(gè)線程而且至少擁有一個(gè)線程;

5:體現(xiàn)在程序結(jié)構(gòu)上,舉一個(gè)簡(jiǎn)明易懂的列子:當(dāng)我們使用進(jìn)程的時(shí)候,我們不自主的使用if else嵌套來判斷pid,使得程序結(jié)構(gòu)繁瑣,但是當(dāng)我們使用線程的時(shí)候,基本上可以甩掉它,當(dāng)然程序內(nèi)部執(zhí)行功能單元需要使用的時(shí)候還是要使用,所以線程對(duì)程序結(jié)構(gòu)的改善有很大幫助。 

進(jìn)程與線程的選擇取決以下幾點(diǎn):

0:需要頻繁創(chuàng)建銷毀的優(yōu)先使用線程;因?yàn)閷?duì)進(jìn)程來說創(chuàng)建和銷毀一個(gè)進(jìn)程代價(jià)是很大的。

1:線程的切換速度快,所以在需要大量計(jì)算,切換頻繁時(shí)用線程,還有耗時(shí)的操作使用線程可提高應(yīng)用程序的響應(yīng)

2:因?yàn)閷?duì)CPU系統(tǒng)的效率使用上線程更占優(yōu),所以可能要發(fā)展到多機(jī)分布的用進(jìn)程,多核分布用線程;

3:并行操作時(shí)使用線程,如C/S 的服務(wù)器端并發(fā)線程響應(yīng)用戶的請(qǐng)求;

4:需要更穩(wěn)定安全時(shí),適合選擇進(jìn)程;需要速度時(shí),選擇線程更好。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2022-03-09 17:01:32

Python多線程多進(jìn)程

2023-12-13 09:56:13

?多進(jìn)程多線程協(xié)程

2021-06-11 11:28:22

多線程fork單線程

2020-04-07 11:10:30

Python數(shù)據(jù)線程

2021-08-04 23:30:28

Node.js開發(fā)線程

2010-07-26 09:45:09

Perl多進(jìn)程

2021-04-20 12:39:52

Node.js多線程多進(jìn)程

2021-09-10 21:25:43

Redis分布式

2023-12-11 18:18:24

Python編程線程

2021-06-11 06:54:35

PythonThreadingMultiproces

2016-10-09 20:15:30

多線程多進(jìn)程

2019-06-03 09:13:11

線程進(jìn)程多線程

2013-12-02 17:33:20

Linux進(jìn)程多線程

2023-11-01 11:20:57

2022-05-26 08:31:41

線程Java線程與進(jìn)程

2024-09-29 10:39:14

并發(fā)Python多線程

2023-11-28 13:52:00

Python多進(jìn)程多線程

2024-12-27 08:11:44

Python編程模式IO

2022-01-04 09:53:37

Python多線程多進(jìn)程

2009-10-28 10:01:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)