亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

線程和進(jìn)程的區(qū)別及Python代碼實(shí)例

系統(tǒng) 1625 0

在程序猿的世界中,線程和進(jìn)程是一個(gè)很重要的概念,很多人經(jīng)常弄不清線程和進(jìn)程到底是什么,有什么區(qū)別,本文試圖來(lái)解釋一下線程和進(jìn)程。首先來(lái)看一下概念:

進(jìn)程(英語(yǔ):process),是計(jì)算機(jī)中已運(yùn)行程序的實(shí)體。進(jìn)程為曾經(jīng)是分時(shí)系統(tǒng)的基本運(yùn)作單位。在面向進(jìn)程設(shè)計(jì)的系統(tǒng)(如早期的UNIX,Linux 2.4及更早的版本)中,進(jìn)程是程序的基本執(zhí)行實(shí)體;在面向線程設(shè)計(jì)的系統(tǒng)(如當(dāng)代多數(shù)操作系統(tǒng)、Linux 2.6及更新的版本)中,進(jìn)程本身不是基本運(yùn)行單位,而是線程的容器。程序本身只是指令、數(shù)據(jù)及其組織形式的描述,進(jìn)程才是程序(那些指令和數(shù)據(jù))的真正運(yùn)行實(shí)例。?C維基百科

線程(英語(yǔ):thread)是操作系統(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ù)。?C維基百科

概念太嚇人了,先來(lái)看一下進(jìn)程,這個(gè)相對(duì)于線程來(lái)說(shuō)還是稍微好理解一點(diǎn)的。進(jìn)程,是程序運(yùn)行的實(shí)體,這句話的意思是,程序是存放在硬盤中的,當(dāng)這個(gè)程序運(yùn)行時(shí),就會(huì)產(chǎn)生若干個(gè)進(jìn)程,并且這個(gè)進(jìn)程是可見的,在windows8的任務(wù)管理器中,我們看到有下列進(jìn)程:

線程和進(jìn)程的區(qū)別及Python代碼實(shí)例_第1張圖片

那么什么是線程呢?如果你編寫過程序,特別是類似windows的批處理這樣的邏輯控制語(yǔ)句少的語(yǔ)言,就能明顯感覺到,當(dāng)運(yùn)行一個(gè)程序是,實(shí)際上整個(gè)運(yùn)行的過程是從頭部一直運(yùn)行到尾部。例如有這樣一段批處理的代碼,提示用戶輸入姓名,然后根據(jù)姓名輸出問候:

            
@echo off
set /p name=請(qǐng)輸入您的姓名: 
cls
echo 你好,%name
pause

          

這段小程序就是自上而下執(zhí)行,執(zhí)行完畢則退出。不管是批處理,像PHP,Node.JS等都是這樣自上而下執(zhí)行的。實(shí)際上這就是一個(gè)線程,可以這樣去理解:線程是一個(gè)任務(wù)流,它被包含在進(jìn)程之中。有個(gè)例子:

5月1號(hào)這一天,麥當(dāng)勞生意比較火爆,人很多,前臺(tái)有6個(gè)窗口,有4個(gè)窗口在工作,隨著要吃飯的人變多,麥當(dāng)勞不得不開放了剩余的兩個(gè)窗口。在這里,每一個(gè)窗口就是一個(gè)進(jìn)程,處理賣垃圾食品這樣一個(gè)任務(wù),讓系統(tǒng)需要處理更多請(qǐng)求時(shí)候,開放窗口就是增加進(jìn)程來(lái)處理需求。由于是假期,發(fā)現(xiàn)即使是6個(gè)窗口全開了,排隊(duì)的客戶還是很多,那么,這里是不是沒有其它的辦法了呢?效率都是逼出來(lái)的,經(jīng)理發(fā)現(xiàn),客戶買完?yáng)|西,在旁邊等,當(dāng)客戶的漢堡(或者其它垃圾食品)準(zhǔn)備好了,是由單獨(dú)的一個(gè)人(小明)把食品遞給客戶,由于這個(gè)人需要把準(zhǔn)備好的食物分別送給6個(gè)不同窗口的客戶,所以效率很低。這時(shí)候經(jīng)理發(fā)話了,食品準(zhǔn)備好了,直接由窗口的售賣人員把食品給正在等在的客戶,這樣比較節(jié)省時(shí)間。在這里,前臺(tái)售賣人員的工作就有原來(lái)的一項(xiàng)專門售賣商品的工作,變成了兩項(xiàng),就是兩個(gè)進(jìn)程。

進(jìn)上總結(jié),一個(gè)進(jìn)程中至少有一個(gè)線程,在實(shí)際的工作中,不是所有的程序都支持多線程,也有一些程序?qū)Χ噙M(jìn)程也支持得不夠好,像PHP,Node.js等都是單進(jìn)程,單線程的。

下面這個(gè)python的腳本讓一個(gè)進(jìn)程中運(yùn)行兩個(gè)線程:

            
import time 
import thread 
def Ordering(interval): 
  cnt = 0 
  while cnt<100: 
    print '好了,你訂餐成功,訂餐號(hào)碼是:%d號(hào) 訂餐時(shí)間是:%s 請(qǐng)?jiān)谂赃吥托牡却齖n\n'%(cnt, time.ctime()) 
    time.sleep(interval) 
    cnt+=1 
  thread.exit_thread() 
def Notice(interval): 
  cnt = 0 
  while cnt<100: 
    print '誰(shuí)的號(hào)碼是%d,您的餐好了,過來(lái)取一下\n'%(cnt) 
    time.sleep(interval) 
    cnt+=1 
  thread.exit_thread()  
  
def work(): #Use thread.start_new_thread() to create 2 new threads 
  thread.start_new_thread(Ordering,(1,)) 
  thread.start_new_thread(Notice,(5,)) 
  
if __name__=='__main__': 
  work()

          


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 手机看片日韩欧美 | 综合玖玖 | 亚洲欧美在线综合一区二区三区 | 国产欧美成人免费观看视频 | 国产精品福利资源在线 | 日本一级毛片视频无遮挡免费 | 精品久久久久久免费影院 | 99热久久国产精品这里 | 26uuu另类欧美亚洲日本 | 免费福利小视频 | 精品国产欧美一区二区最新 | 色综合免费视频 | 国产精品视频福利一区二区 | 奇米第四色在线 | 女人牲交视频一级毛片 | 乱子伦xxxx厨房 | 99视频都是精品热在线播放 | 中文字幕免费 | 成人免费观看一区二区 | 97在线观看免费观看高清 | 亚洲免费视频一区 | 狠狠色丁香婷婷综合精品视频 | 99精品视频在线在线视频观看 | 欧美激情中文字幕一区二区 | 久久草在线视频观看 | 四虎comwww最新地址 | 色姑娘桃花网 | 一区二区三区在线 | 网站 | 亚洲精品宾馆在线精品酒店 | 久久综合九色婷婷97 | 欧美 亚洲 一区 | 久青草中文字幕精品视频 | 人成午夜视频 | 五月一区二区久久综合天堂 | 国产成社区在线视频观看 | 国产精品手机在线观看 | 欧美色激情 | 看日本真人一一级特黄毛片 | 国产成人精品三区 | 日韩中文字幕一区二区不卡 | 精品国产自在久久 |