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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python 进程 Process 模块 - Python零基础入门教程

發(fā)布時(shí)間:2024/9/27 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 进程 Process 模块 - Python零基础入门教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 一.Python 進(jìn)程 Process 簡介
  • 二.Python 進(jìn)程 Process 模塊
  • 三.Python 進(jìn)程 Process 函數(shù)介紹
  • 四.Python 進(jìn)程 Process 使用
  • 五.Python 進(jìn)程 Process 小竅門
  • 六.猜你喜歡

零基礎(chǔ) Python 學(xué)習(xí)路線推薦 : Python 學(xué)習(xí)目錄 >> Python 基礎(chǔ)入門

一.Python 進(jìn)程 Process 簡介

進(jìn)程 Process 是對(duì)各種資源管理的集合,包含對(duì)各種資源的調(diào)用、內(nèi)存的管理、網(wǎng)絡(luò)接口的調(diào)用;一個(gè)進(jìn)程 Process 可以包含多個(gè)子進(jìn)程,啟動(dòng)一個(gè)進(jìn)程的時(shí)候會(huì)自動(dòng)創(chuàng)建一個(gè)線程,進(jìn)程里的第一個(gè)線程就是主線程(即Python __name__ == ‘__main__’);

二.Python 進(jìn)程 Process 模塊

對(duì)于線程操作可以用 threading 模塊,那么對(duì)于進(jìn)程的創(chuàng)建 Python 同樣也提供了 Process 模塊,創(chuàng)建進(jìn)程時(shí)需要導(dǎo)入該模塊,語法如下:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python 進(jìn)程 Process 模塊.py @Time:2021/05/06 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""# 導(dǎo)入進(jìn)程模塊 from multiprocessing import Process''' 參數(shù)介紹:group — 參數(shù)未使用,默認(rèn)值為None;target — 表示調(diào)用對(duì)象,即子進(jìn)程要執(zhí)行的任務(wù)(函數(shù)名字);args — 子進(jìn)程對(duì)應(yīng)函數(shù)的參數(shù),并且類型是元組tuple;kwargs — 子進(jìn)程對(duì)應(yīng)函數(shù)的參數(shù),并且類型是字典dict,如kwargs = {‘name’:Jack, ‘a(chǎn)ge’:18};name — 子進(jìn)程名稱;返回值:返回進(jìn)程實(shí)例對(duì)象; '''# 創(chuàng)建進(jìn)程 p = Process(group=None, target=None, name=None, args=(), kwargs={})

三.Python 進(jìn)程 Process 函數(shù)介紹

其實(shí)進(jìn)程 Process 的函數(shù)和**線程 threading** 類似,具體如下:

  • 1.start — 啟動(dòng)進(jìn)程;
  • 2.terminate — 強(qiáng)制終止進(jìn)程,不會(huì)進(jìn)行任何清理操作。如果該進(jìn)程終止前,創(chuàng)建了子進(jìn)程,那么該子進(jìn)程在其強(qiáng)制結(jié)束后變?yōu)榻┦M(jìn)程;如果該進(jìn)程還保存了一個(gè)鎖那么也將不會(huì)被釋放,進(jìn)而導(dǎo)致死鎖,使用時(shí),要注意;
  • 3.is_alive — 判斷某進(jìn)程是否存活,存活返回 True ,否則 False ;
  • 4.join([timeout]) — 主線程等待子線程終止。timeout 為可選擇超時(shí)時(shí)間;需要強(qiáng)調(diào)的是,p.join 只能 join 住 start 開啟的進(jìn)程,而不能 join 住 run 開啟的進(jìn)程 ;
  • 5.daemon — 默認(rèn)值為 False ,如果設(shè)置為 True,代表該進(jìn)程為后臺(tái)守護(hù)進(jìn)程;當(dāng)該進(jìn)程的父進(jìn)程終止時(shí),該進(jìn)程也隨之終止;并且設(shè)置為 True 后,該進(jìn)程不能創(chuàng)建子進(jìn)程,設(shè)置該屬性必須在 start 之前;
  • 6.name — 進(jìn)程名稱;
  • 7.pid — 進(jìn)程 ID 標(biāo)識(shí),pid,值得注意的是:如果在 start 函數(shù)之前獲取 pid 默認(rèn)為 None ,因?yàn)檫M(jìn)程還未創(chuàng)建,獲取不到 pid
  • 8.exitcode — 進(jìn)程運(yùn)行時(shí)為 None,如果為 -N ,表示被信號(hào) N 結(jié)束了;
  • 9.authkey — 進(jìn)程身份驗(yàn)證,默認(rèn)是由 os.urandom 隨機(jī)生成 32 字符的字符串。這個(gè)鍵的用途是設(shè)計(jì)涉及網(wǎng)絡(luò)連接的底層進(jìn)程間的通信提供安全性,這類連接只有在具有相同身份驗(yàn)證才能成功;

四.Python 進(jìn)程 Process 使用

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python 進(jìn)程 Process 模塊.py @Time:2021/05/06 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""from multiprocessing import Processdef people_info(*args,**kwargs):print(args,kwargs)def main():# 信息列表list_info = [{"name":"zhangsan","height":"175cm"},{"name": "lisi", "height": "155cm"},{"name": "wangwu", "height": "195cm"},{"name": "liqi", "height": "166cm"},{"name": "wangba", "height": "125cm"},]# 創(chuàng)建進(jìn)程for i in range(5):p = Process(target=people_info,args=(i,),kwargs=list_info[i])# 設(shè)置為守護(hù)進(jìn)程,必須設(shè)置在start函數(shù)之前,否則會(huì)產(chǎn)生異常# 默認(rèn)為False,即主進(jìn)程會(huì)等待子進(jìn)程結(jié)束之后才結(jié)束,# 如果設(shè)置為True,主進(jìn)程結(jié)束之后所有的子進(jìn)程自動(dòng)結(jié)束,不管子進(jìn)程是否已經(jīng)執(zhí)行完所有任務(wù)# p.daemon = True# 啟動(dòng)進(jìn)程p.start()# 獲取進(jìn)程pid,如果在start函數(shù)之前獲取pid,默認(rèn)為None,因?yàn)檫M(jìn)程還沒啟動(dòng)print("進(jìn)程process pid = ",p.pid)# 獲取進(jìn)程名字print("進(jìn)程process name = ",p.name)# 獲取進(jìn)程pidprint("進(jìn)程process exitcode = ",p.exitcode)if __name__ == "__main__":main()''' 輸出結(jié)果:進(jìn)程process pid = 2600 進(jìn)程process name = Process-1 進(jìn)程process exitcode = None 進(jìn)程process pid = 4372 進(jìn)程process name = Process-2 進(jìn)程process exitcode = None 進(jìn)程process pid = 14124 進(jìn)程process name = Process-3 進(jìn)程process exitcode = None 進(jìn)程process pid = 10920 進(jìn)程process name = Process-4 進(jìn)程process exitcode = None 進(jìn)程process pid = 4892 進(jìn)程process name = Process-5 進(jìn)程process exitcode = None (0,) {'name': 'zhangsan', 'height': '175cm'} (1,) {'name': 'lisi', 'height': '155cm'} (2,) {'name': 'wangwu', 'height': '195cm'} (3,) {'name': 'liqi', 'height': '166cm'} (4,) {'name': 'wangba', 'height': '125cm'} '''

五.Python 進(jìn)程 Process 小竅門

Python 的 os 模塊封裝了常見的系統(tǒng)調(diào)用,其中就包括:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python 進(jìn)程 Process 模塊.py @Time:2021/05/06 07:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""os.fork() 創(chuàng)建子進(jìn)程 os.getpid() 獲取自身 ID os.getppid() 獲取父進(jìn)程 ID

關(guān)于進(jìn)程 Process 創(chuàng)建就介紹到這里,不知道大家發(fā)現(xiàn)沒有,進(jìn)程 Process 的創(chuàng)建和線程 threading 的創(chuàng)建非常相似,那么 Python 進(jìn)程和線程到底又有什么區(qū)別呢?關(guān)于 Python 進(jìn)程和線程的區(qū)別請(qǐng)參考:Python 進(jìn)程 Process 與線程 threading 的區(qū)別

六.猜你喜歡

  • Python 條件推導(dǎo)式
  • Python 列表推導(dǎo)式
  • Python 字典推導(dǎo)式
  • Python 函數(shù)聲明和調(diào)用
  • Python 不定長參數(shù) *argc/**kargcs
  • Python 匿名函數(shù) lambda
  • Python return 邏輯判斷表達(dá)式
  • Python 字符串/列表/元組/字典之間的相互轉(zhuǎn)換
  • Python 局部變量和全局變量
  • Python type 函數(shù)和 isinstance 函數(shù)區(qū)別
  • Python is 和 == 區(qū)別
  • Python 可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型
  • Python 淺拷貝和深拷貝
  • Python 文件讀寫操作
  • Python 異常處理
  • Python 模塊 import
  • Python __name__ == ‘__main__’詳細(xì)解釋
  • Python 線程創(chuàng)建和傳參
  • Python 線程互斥鎖 Lock
  • Python 線程時(shí)間 Event
  • Python 線程條件變量 Condition
  • Python 線程定時(shí)器 Timer
  • Python 線程信號(hào)量 Semaphore
  • Python 線程障礙對(duì)象 Barrier
  • Python 線程隊(duì)列 Queue – FIFO
  • Python 線程隊(duì)列 LifoQueue – LIFO
  • Python 線程優(yōu)先隊(duì)列 PriorityQueue
  • Python 線程池 ThreadPoolExecutor(一)
  • Python 線程池 ThreadPoolExecutor(二)
  • Python 進(jìn)程 Process 模塊
  • Python 進(jìn)程 Process 與線程 threading 區(qū)別
  • Python 進(jìn)程間通信 Queue / Pipe
  • 未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? Python 進(jìn)程 Process 模塊

    總結(jié)

    以上是生活随笔為你收集整理的Python 进程 Process 模块 - Python零基础入门教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。