欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單分析Python中用fork()函數(shù)生成的子進程

 更新時間:2015年05月04日 10:06:10   投稿:goldensun  
這篇文章主要介紹了Python中用fork()函數(shù)生成的子進程,分析子進程與父進程的執(zhí)行順序,需要的朋友可以參考下

python的os module中有fork()函數(shù)用于生成子進程,生成的子進程是父進程的鏡像,但是它們有各自的地址空間,子進程復制一份父進程內(nèi)存給自己,兩個進程之 間的執(zhí)行是相互獨立的,其執(zhí)行順序可以是不確定的、隨機的、不可預測的,這點與多線程的執(zhí)行順序相似。 

import os
def child():
  print 'A new child:', os.getpid()
  print 'Parent id is:', os.getppid()
  os._exit(0)
def parent():
  while True:
    newpid=os.fork()
    print newpid
    if newpid==0:
      child()
    else:
      pids=(os.getpid(),newpid)
      print "parent:%d,child:%d"%pids
      print "parent parent:",os.getppid()    
    if raw_input()=='q':
      break
parent()

    在我們加載了os模塊之后,我們parent函數(shù)中fork()函數(shù)生成了一個子進程,返回值newpid有兩個,一個為0,用以表示子進程,一個是大于 0的整數(shù),用以表示父進程,這個常數(shù)正是子進程的pid. 通過print語句我們可以清晰看到兩個返回值。如果fork()返回值是一個負值,則表明子進程生成不成功(這個簡單程序中沒有考慮這種情況)。如果 newpid==0,則表明我們進入到了子進程,也就是child()函數(shù)中,在子進程中我們輸出了自己的id和父進程的id。如果進入了else語句, 則表明newpid>0,我們進入到父進程中,在父進程中os.getpid()得到自己的id,fork()返回值newpid表示了子進程的id,同時我們輸出了父進程的父進程的id. 通過實驗我們可以看到if和else語句的執(zhí)行順序是不確定的,子、父進程的執(zhí)行順序由操作系統(tǒng)的調(diào)度算法來決定。

相關(guān)文章

  • Python使用?TCP協(xié)議實現(xiàn)智能聊天機器人功能

    Python使用?TCP協(xié)議實現(xiàn)智能聊天機器人功能

    TCP協(xié)議適用于對效率要求相對較低而準確性要求很高的場合,下面通過本文給大家介紹基于Python?使用?TCP?實現(xiàn)智能聊天機器人,需要的朋友可以參考下
    2022-05-05
  • python 字典 setdefault()和get()方法比較詳解

    python 字典 setdefault()和get()方法比較詳解

    這篇文章主要介紹了python 字典 setdefault()和get()方法比較詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Tornado協(xié)程在python2.7如何返回值(實現(xiàn)方法)

    Tornado協(xié)程在python2.7如何返回值(實現(xiàn)方法)

    下面小編就為大家?guī)硪黄猅ornado協(xié)程在python2.7如何返回值(實現(xiàn)方法)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • python多進程使用函數(shù)封裝實例

    python多進程使用函數(shù)封裝實例

    這篇文章主要介紹了python多進程使用函數(shù)封裝實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python使用matplotlib畫出的圖怎樣放到word中

    python使用matplotlib畫出的圖怎樣放到word中

    這篇文章主要介紹了python使用matplotlib畫出的圖怎樣放到word中問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 基于logstash實現(xiàn)日志文件同步elasticsearch

    基于logstash實現(xiàn)日志文件同步elasticsearch

    這篇文章主要介紹了基于logstash實現(xiàn)日志文件同步elasticsearch,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • VSCODE配置Markdown及Markdown基礎(chǔ)語法詳解

    VSCODE配置Markdown及Markdown基礎(chǔ)語法詳解

    這篇文章主要介紹了VSCODE配置Markdown及Markdown基礎(chǔ)語法詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • django開發(fā)之settings.py中變量的全局引用詳解

    django開發(fā)之settings.py中變量的全局引用詳解

    當網(wǎng)站里面的一些內(nèi)容,如郵箱,網(wǎng)站標題,網(wǎng)站的描述,這些東西我們可以存在數(shù)據(jù)庫中也可以存放在我們的setting 文件中,這篇文章主要給大家介紹了django中settings.py變量的全局引用的相關(guān)資料,文中介紹的非常詳細,需要的朋友可以參考下。
    2017-03-03
  • 詳解python中mongoengine庫用法

    詳解python中mongoengine庫用法

    這篇文章主要介紹了python中mongoengine庫用法,主要包括MongoDB的安裝與連接過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Python入門教程(十六)Python的if邏輯判斷分支

    Python入門教程(十六)Python的if邏輯判斷分支

    這篇文章主要介紹了Python入門教程(十六)Python的if邏輯判斷分支,Python是一門非常強大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04

最新評論