最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2015年02月04日 09:17:56   投稿:junjie  
這篇文章主要介紹了線程和進(jìn)程的區(qū)別及Python代碼實(shí)例,本文給出了一個(gè)python的腳本讓一個(gè)進(jìn)程中運(yùn)行兩個(gè)線程,需要的朋友可以參考下

在程序猿的世界中,線程和進(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í)例。–維基百科

線程(英語(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ù)。–維基百科

概念太嚇人了,先來(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)程是可見(jiàn)的,在windows8的任務(wù)管理器中,我們看到有下列進(jìn)程:

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

@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)勞不得不開(kāi)放了剩余的兩個(gè)窗口。在這里,每一個(gè)窗口就是一個(gè)進(jìn)程,處理賣垃圾食品這樣一個(gè)任務(wù),讓系統(tǒng)需要處理更多請(qǐng)求時(shí)候,開(kāi)放窗口就是增加進(jìn)程來(lái)處理需求。由于是假期,發(fā)現(xiàn)即使是6個(gè)窗口全開(kāi)了,排隊(duì)的客戶還是很多,那么,這里是不是沒(méi)有其它的辦法了呢?效率都是逼出來(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,您的餐好了,過(guò)來(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()

相關(guān)文章

  • python3 tkinter實(shí)現(xiàn)添加圖片和文本

    python3 tkinter實(shí)現(xiàn)添加圖片和文本

    這篇文章主要為大家詳細(xì)介紹了python3 tkinter實(shí)現(xiàn)添加圖片和文本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python實(shí)現(xiàn)配置文件備份的方法

    Python實(shí)現(xiàn)配置文件備份的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)配置文件備份的方法,實(shí)例分析了基于Linux平臺(tái)下Python文件壓縮備份的相關(guān)技巧,具有一定參考借鑒價(jià)值
    2015-07-07
  • pip和pygal的安裝實(shí)例教程

    pip和pygal的安裝實(shí)例教程

    這篇文章主要介紹了pip和pygal的安裝實(shí)例教程,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 使用python-magic和wxPython實(shí)現(xiàn)識(shí)別文檔類型

    使用python-magic和wxPython實(shí)現(xiàn)識(shí)別文檔類型

    這篇文章主要介紹了如何使用python-magic模塊和wxPython庫(kù)創(chuàng)建一個(gè)簡(jiǎn)單的文件列表應(yīng)用程序,該應(yīng)用程序可以顯示所選文件夾中文件的類型,需要的可以參考下
    2023-08-08
  • Python+OpenCV 實(shí)現(xiàn)簡(jiǎn)單的高斯濾波(推薦)

    Python+OpenCV 實(shí)現(xiàn)簡(jiǎn)單的高斯濾波(推薦)

    這篇文章主要介紹了Python+OpenCV 實(shí)現(xiàn)簡(jiǎn)單的高斯濾波,在文中需要注意的是,這里我沒(méi)有特判當(dāng)sigma = 0的時(shí)候的情況,具體實(shí)現(xiàn)過(guò)程跟隨小編一起看看吧
    2021-09-09
  • Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析

    Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析

    這篇文章主要介紹了Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python統(tǒng)計(jì)文件中去重后uuid個(gè)數(shù)的方法

    Python統(tǒng)計(jì)文件中去重后uuid個(gè)數(shù)的方法

    這篇文章主要介紹了Python統(tǒng)計(jì)文件中去重后uuid個(gè)數(shù)的方法,實(shí)例分析了Python正則匹配及字符串操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • Django使用視圖動(dòng)態(tài)輸出CSV以及PDF的操作詳解

    Django使用視圖動(dòng)態(tài)輸出CSV以及PDF的操作詳解

    這篇文章主要介紹了Django 如何使用視圖動(dòng)態(tài)輸出 CSV 以及 PDF,我們需要用到 python 的 csv 和 reportLab 庫(kù),通過(guò)django視圖來(lái)定義輸出我們需要的 csv 或者 pdf 文件,需要的朋友可以參考下
    2024-06-06
  • Linux添加Python?path方法及修改環(huán)境變量的三種方法

    Linux添加Python?path方法及修改環(huán)境變量的三種方法

    這篇文章主要介紹了Linux添加Python?path方法及修改環(huán)境變量的三種方法,Linux 下設(shè)置環(huán)境變量有三種方法,一種用于當(dāng)前終端,一種用于當(dāng)前用戶,一種用于所有用戶,本文對(duì)每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • python-tkinter之按鈕的使用,開(kāi)關(guān)方法

    python-tkinter之按鈕的使用,開(kāi)關(guān)方法

    今天小編就為大家分享一篇python-tkinter之按鈕的使用,開(kāi)關(guān)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06

最新評(píng)論

肃南| 清远市| 长岭县| 乌兰浩特市| 天津市| 南乐县| 镇巴县| 杭州市| 田东县| 伊宁县| 湟中县| 武邑县| 桐城市| 七台河市| 罗甸县| 白河县| 金塔县| 竹北市| 柳林县| 昌都县| 攀枝花市| 利津县| 仙桃市| 日照市| 蛟河市| 洛川县| 泌阳县| 元氏县| 罗山县| 托里县| 固始县| 凤阳县| 神木县| 连城县| 犍为县| 西青区| 庐江县| 黄冈市| 天气| 铁岭市| 长泰县|