欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

線程和進程的區別及Python代碼實例

系統 1687 0

在程序猿的世界中,線程和進程是一個很重要的概念,很多人經常弄不清線程和進程到底是什么,有什么區別,本文試圖來解釋一下線程和進程。首先來看一下概念:

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

線程(英語:thread)是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發多個線程,每條線程并行執行不同的任務。?C維基百科

概念太嚇人了,先來看一下進程,這個相對于線程來說還是稍微好理解一點的。進程,是程序運行的實體,這句話的意思是,程序是存放在硬盤中的,當這個程序運行時,就會產生若干個進程,并且這個進程是可見的,在windows8的任務管理器中,我們看到有下列進程:

線程和進程的區別及Python代碼實例_第1張圖片

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

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

          

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

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

進上總結,一個進程中至少有一個線程,在實際的工作中,不是所有的程序都支持多線程,也有一些程序對多進程也支持得不夠好,像PHP,Node.js等都是單進程,單線程的。

下面這個python的腳本讓一個進程中運行兩個線程:

            
import time 
import thread 
def Ordering(interval): 
  cnt = 0 
  while cnt<100: 
    print '好了,你訂餐成功,訂餐號碼是:%d號 訂餐時間是:%s 請在旁邊耐心等待\n\n'%(cnt, time.ctime()) 
    time.sleep(interval) 
    cnt+=1 
  thread.exit_thread() 
def Notice(interval): 
  cnt = 0 
  while cnt<100: 
    print '誰的號碼是%d,您的餐好了,過來取一下\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()

          


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月婷婷社区 | 一区二区中文字幕 | 91精品福利 | 日本中文字幕电影 | 午夜你懂得 | 久久大胆视频 | 国产www色| 亚洲综合亚洲国产尤物 | 黄色视屏免费观看 | 国产孰妇精品AV片国产m3u8 | 日韩色中色 | 蜜桃黄网 | 天天草综合网 | 成人欧美在线观看免费视频 | 精品一区二区三区免费视频 | 99精品国产高清一区二区麻豆 | 色偷偷888欧美精品久久久 | 欧美自拍视频在线 | 国产成人91 | 欧美疯狂xxxx乱大交视频 | 欧美一级夜夜爽www 美女污视频网站 | 草草网 | 高清激情小视频在线观看 | 色五月丁香五月综合五月 | 国产免费久久久久 | 国产精品亚洲综合一区在线观看 | 草草精品视频 | 国产国产成人久久精品杨幂 | 国产在线视频网 | 精品在线一区二区三区 | 成人欧美一区二区三区在线播放 | 精品国产一区二区三区久久 | 欧美猛妇色xxxxxbbbb | 69av.com| 日韩免费在线视频 | 精品一区久久 | 乱码中文字幕人成在线 | 国产日韩第一页 | 亚洲色域网 | 精品小视频在线 | 香港午夜三级a三级高清观看 |