日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

fork linux 低权限,linux/Unix下python的fork详解及应用举例

發布時間:2023/12/19 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fork linux 低权限,linux/Unix下python的fork详解及应用举例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

forking是Unix和Linux最重要的一個點。

總結下其特點如下:

1,子進程與父進程的復制關系:

子進程擁有父進程的所有內存的精確副本。當使用fork給進程分叉時,它會創建一個自己的副本。在多線程環境中,fork意味著執行的線程是重復的,但是可以分開。因此,有的學者認為fork很像生物里克隆的概念。子進程克隆了父進程。獲取了父進程的數據和代碼。

2,相互獨立關系

父進程和子進程的執行是相互獨立的。fork操作為子進程創建了一個單獨的地址空間。子進程從操作系統接收一個新的進程號PID號(PID,進程標識符)。

3,fork()的返回值:

fork的返回值決定當前正在進行的是哪一個進程:

0: 處于子進程中;

正值:處于父進程中;

負值:意味著操作系統在嘗試調用Fork()函數時,發生了錯誤。

4,使用Fork需要導入os模塊

import os

5,子進程的退出

子進程退出必須使用os.exit(0),否則子進程將返回到父進程中。

例:

import os

def child():

print('\nA new child ', os.getpid())

os._exit(0)

def parent():

while True:

newpid = os.fork()

if newpid == 0:

child()

else:

pids = (os.getpid(), newpid)

print("parent: %d, child: %d\n" % pids)

reply = input("q for quit / c for new fork")

if reply == 'c':

continue

else:

break

parent()

每當用戶輸入“c”時,它就會分叉。子進程和父進程都在“如果newpid==0:”語句之后繼續。在父進程中,newpid的值大于0,在子進程中是0。

運行結果如下:

parent: 5280, child: 5281

A new child 5281

q for quit / c for new forkc

parent: 5280, child: 5282

q for quit / c for new fork

A new child 5282

c

parent: 5280, child: 5283

q for quit / c for new fork

A new child 5283

c

parent: 5280, child: 5284

q for quit / c for new fork

A new child 5284

父進程的PID號為5280,每輸入一個“c”獲得一個新的子進程,PID號分別為5281,5282,5283等。

總結

以上是生活随笔為你收集整理的fork linux 低权限,linux/Unix下python的fork详解及应用举例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。