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

進(jìn)程與線程的一個通俗簡單解釋

運(yùn)維 系統(tǒng)運(yùn)維
進(jìn)程(process)和線程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。最近,我讀到一篇材料,發(fā)現(xiàn)有一個很好的類比,可以把它們解釋地清晰易懂。

進(jìn)程(process)和線程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。最近,我讀到一篇材料,發(fā)現(xiàn)有一個很好的類比,可以把它們解釋地清晰易懂。

1、 計算機(jī)的核心是CPU,它承擔(dān)了所有的計算任務(wù)。它就像一座工廠,時刻在運(yùn)行。 

[[277094]] 

2、假定工廠的電力有限,一次只能供給一個車間使用。也就是說,一個車間開工的時候,其他車間都必須停工。背后的含義就是,單個CPU一次只能運(yùn)行一個任務(wù)。 

[[277095]] 

3、進(jìn)程就好比工廠的車間,它代表CPU所能處理的單個任務(wù)。任一時刻,CPU總是運(yùn)行一個進(jìn)程,其他進(jìn)程處于非運(yùn)行狀態(tài)。  

[[277096]] 

4、一個車間里,可以有很多工人。他們協(xié)同完成一個任務(wù)。 

[[277097]] 

5、線程就好比車間里的工人。一個進(jìn)程可以包括多個線程。  

[[277098]] 

6、車間的空間是工人們共享的,比如許多房間是每個工人都可以進(jìn)出的。這象征一個進(jìn)程的內(nèi)存空間是共享的,每個線程都可以使用這些共享內(nèi)存。  

[[277099]] 

7、可是,每間房間的大小不同,有些房間最多只能容納一個人,比如廁所。里面有人的時候,其他人就不能進(jìn)去了。這代表一個線程使用某些共享內(nèi)存時,其他線程必須等它結(jié)束,才能使用這一塊內(nèi)存。 

[[277100]] 

8、一個防止他人進(jìn)入的簡單方法,就是門口加一把鎖。先到的人鎖上門,后到的人看到上鎖,就在門口排隊,等鎖打開再進(jìn)去。這就叫”互斥鎖”(Mutual exclusion,縮寫 Mutex),防止多個線程同時讀寫某一塊內(nèi)存區(qū)域。 

[[277101]] 

9、還有些房間,可以同時容納n個人,比如廚房。也就是說,如果人數(shù)大于n,多出來的人只能在外面等著。這好比某些內(nèi)存區(qū)域,只能供給固定數(shù)目的線程使用。 

[[277102]] 

10、這時的解決方法,就是在門口掛n把鑰匙。進(jìn)去的人就取一把鑰匙,出來時再把鑰匙掛回原處。后到的人發(fā)現(xiàn)鑰匙架空了,就知道必須在門口排隊等著了。這種做法叫做”信號量”(Semaphore),用來保證多個線程不會互相沖突。  

[[277103]]

不難看出,mutex是semaphore的一種特殊情況(n=1時)。也就是說,完全可以用后者替代前者。但是,因為mutex較為簡單,且效率高,所以在必須保證資源獨(dú)占的情況下,還是采用這種設(shè)計。 

[[277104]] 

11、操作系統(tǒng)的設(shè)計,因此可以歸結(jié)為三點(diǎn):

(1)以多進(jìn)程形式,允許多個任務(wù)同時運(yùn)行;

(2)以多線程形式,允許單個任務(wù)分成不同的部分運(yùn)行;

(3)提供協(xié)調(diào)機(jī)制,一方面防止進(jìn)程之間和線程之間產(chǎn)生沖突,另一方面允許進(jìn)程之間和線程之間共享資源。

 

責(zé)任編輯:龐桂玉 來源: 戀習(xí)Python
相關(guān)推薦

2013-04-25 09:55:21

進(jìn)程線程

2021-12-02 06:08:36

物聯(lián)網(wǎng)IOT物聯(lián)網(wǎng)技術(shù)

2018-08-26 05:38:44

路由器調(diào)制解調(diào)器網(wǎng)絡(luò)設(shè)備

2021-03-13 12:54:50

Node進(jìn)程Cron

2018-06-05 15:41:22

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

2023-09-04 08:08:59

2023-07-03 07:27:41

進(jìn)程線程Win32

2015-09-17 13:26:56

線程數(shù)進(jìn)程Linux

2011-03-24 09:34:41

SPRING

2019-10-21 09:57:05

多云混合云云計算

2020-10-26 13:12:00

多線程調(diào)度隨機(jī)性

2024-10-22 15:34:57

2024-05-15 10:07:11

Agents人工智能CSV

2009-08-19 04:14:00

線性鏈表

2018-11-22 14:09:45

iOS架構(gòu)組件開發(fā)

2023-02-07 10:40:30

gRPC系統(tǒng)Mac

2024-01-31 08:16:38

IPythonPython解釋器

2009-07-14 16:02:42

JDBC例子

2020-11-09 06:38:00

ninja構(gòu)建方式構(gòu)建系統(tǒng)

2014-12-11 16:40:31

Android|進(jìn)程線程
點(diǎn)贊
收藏

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