两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

我們?cè)谑褂糜?jì)算機(jī)或者手機(jī)的時(shí)候可以發(fā)現(xiàn)他們都能同時(shí)使用多個(gè)程序,這里就要涉及到多線程編程,多線程編程能夠幫助我們合理的分配并最高效的利用資源,本章節(jié)我們就來學(xué)習(xí)一下多線程中的線程和進(jìn)程,首先我們來了解一下他們的概念。

1. 進(jìn)程

概念進(jìn)程(Process)是計(jì)算機(jī)中的程序關(guān)于某數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ),通俗的講,一個(gè)進(jìn)程對(duì)應(yīng)一個(gè)程序,而這個(gè)程序有它的運(yùn)行空間和系統(tǒng)資源,在計(jì)算機(jī)內(nèi)部,每個(gè)進(jìn)程使用的數(shù)據(jù)和狀態(tài)都是獨(dú)立的,我們也可以稱一個(gè)進(jìn)程就是一個(gè)任務(wù),下面打開windows的任務(wù)管理器來查看一下當(dāng)前運(yùn)行的進(jìn)程。

 進(jìn)程和線程1

我們可以發(fā)現(xiàn)計(jì)算機(jī)運(yùn)行的不僅僅有我們打開的應(yīng)用,還有很多個(gè)后臺(tái)運(yùn)行的系統(tǒng)進(jìn)程,進(jìn)程就是我們電腦中已經(jīng)運(yùn)行的程序的實(shí)體,看下圖:

 進(jìn)程和線程2

然后把每個(gè)進(jìn)程對(duì)應(yīng)一個(gè)我們正在運(yùn)行的應(yīng)用,這樣的多個(gè)進(jìn)程,例如QQ、Pycharm、Steam等這樣的應(yīng)用進(jìn)程以及系統(tǒng)進(jìn)程組合在一起構(gòu)成了我們的操作系統(tǒng)。

2. 線程

線程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。一條線程指的是進(jìn)程中一個(gè)單一順序的控制流,一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù)。我們來舉個(gè)例子,當(dāng)我們?cè)谟霸嚎措娪暗臅r(shí)候,影院的影音系統(tǒng)會(huì)有一個(gè)線程去控制視頻的播放,還有會(huì)有個(gè)線程去控制聲音,這樣的兩個(gè)線程組合在一起構(gòu)成影音播放程序,也就是對(duì)應(yīng)了一個(gè)進(jìn)程。

在Python的程序中一般情況下至少包含一個(gè)線程,通常我們稱之為主線程,我們運(yùn)行了程序后,解釋器控制主線程的創(chuàng)建和關(guān)閉。

3. 線程和進(jìn)程的區(qū)別

1) 地址空間和其它資源(如打開文件):進(jìn)程間相互獨(dú)立,同一進(jìn)程的各線程間共享,某進(jìn)程內(nèi)的線程在其它進(jìn)程不可見。

2) 通信:進(jìn)程間通信IPC,線程間可以直接讀寫進(jìn)程數(shù)據(jù)段(如全局變量)來進(jìn)行通信——需要進(jìn)程同步和互斥手段的輔助,以保證數(shù)據(jù)的一致性。

3) 調(diào)度和切換:線程上下文切換比進(jìn)程上下文切換要快得多。

4) 在多線程OS中,進(jìn)程不是一個(gè)可執(zhí)行的實(shí)體。

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

4. 線程和進(jìn)程的優(yōu)劣

1) 線程之間的通信更方便,同一進(jìn)程下的線程共享全局變量、靜態(tài)變量等數(shù)據(jù),而進(jìn)程之間的通信是以通信的方式進(jìn)行。

2) 多進(jìn)程程序更為安全,多線程程序中有一個(gè)線程出現(xiàn)問題,整個(gè)進(jìn)程也就死掉了,而多進(jìn)程的程序保障了一個(gè)進(jìn)程死掉的時(shí)候不會(huì)影響到另外的一個(gè)進(jìn)程。

5. 總結(jié)

進(jìn)程和線程是操作系統(tǒng)中的核心理念,也是并發(fā)控制的關(guān)鍵內(nèi)容,本章的內(nèi)容在大家學(xué)習(xí)操作系統(tǒng)的時(shí)候能提供很大的幫助,也可以使用Python中的相關(guān)模塊去解決相應(yīng)的操作系統(tǒng)中的問題。


點(diǎn)贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)