国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Python > 正文

python進程的狀態(tài)、創(chuàng)建及使用方法詳解

2024-09-09 19:02:59
字體:
供稿:網(wǎng)友

本文實例講述了python進程的狀態(tài)、創(chuàng)建及使用方法。分享給大家供大家參考,具體如下:

進程以及狀態(tài)

1. 進程

程序:例如xxx.py這是程序,是一個靜態(tài)的

進程:一個程序運行起來后,代碼+用到的資源 稱之為進程,它是操作系統(tǒng)分配資源的基本單元。

不僅可以通過線程完成多任務,進程也是可以的

2. 進程的狀態(tài)

工作中,任務數(shù)往往大于cpu的核數(shù),即一定有一些任務正在執(zhí)行,而另外一些任務在等待cpu進行執(zhí)行,因此導致了有了不同的狀態(tài)

就緒態(tài):運行的條件都已經(jīng)慢去,正在等在cpu執(zhí)行 執(zhí)行態(tài):cpu正在執(zhí)行其功能 等待態(tài):等待某些條件滿足,例如一個程序sleep了,此時就處于等待態(tài)

進程的創(chuàng)建-multiprocessing

multiprocessing模塊就是跨平臺版本的多進程模塊,提供了一個Process類來代表一個進程對象,這個對象可以理解為是一個獨立的進程,可以執(zhí)行另外的事情

1. 2個while循環(huán)一起執(zhí)行

# -*- coding:utf-8 -*-from multiprocessing import Processimport timedef run_proc():  """子進程要執(zhí)行的代碼"""  while True:    print("----2----")    time.sleep(1)if __name__=='__main__':  p = Process(target=run_proc)  p.start()  while True:    print("----1----")    time.sleep(1)

說明

創(chuàng)建子進程時,只需要傳入一個執(zhí)行函數(shù)和函數(shù)的參數(shù),創(chuàng)建一個Process實例,用start()方法啟動

2. 進程pid

# -*- coding:utf-8 -*-from multiprocessing import Processimport osimport timedef run_proc():  """子進程要執(zhí)行的代碼"""  print('子進程運行中,pid=%d...' % os.getpid()) # os.getpid獲取當前進程的進程號  print('子進程將要結(jié)束...')if __name__ == '__main__':  print('父進程pid: %d' % os.getpid()) # os.getpid獲取當前進程的進程號  p = Process(target=run_proc)  p.start()

3. Process語法結(jié)構(gòu)如下:

Process([group [, target [, name [, args [, kwargs]]]]])

target:如果傳遞了函數(shù)的引用,可以任務這個子進程就執(zhí)行這里的代碼 args:給target指定的函數(shù)傳遞的參數(shù),以元組的方式傳遞 kwargs:給target指定的函數(shù)傳遞命名參數(shù) name:給進程設(shè)定一個名字,可以不設(shè)定 group:指定進程組,大多數(shù)情況下用不到

Process創(chuàng)建的實例對象的常用方法:

start():啟動子進程實例(創(chuàng)建子進程) is_alive():判斷進程子進程是否還在活著 join([timeout]):是否等待子進程執(zhí)行結(jié)束,或等待多少秒 terminate():不管任務是否完成,立即終止子進程

Process創(chuàng)建的實例對象的常用屬性:

name:當前進程的別名,默認為Process-N,N為從1開始遞增的整數(shù) pid:當前進程的pid(進程號)

4. 給子進程指定的函數(shù)傳遞參數(shù)

# -*- coding:utf-8 -*-from multiprocessing import Processimport osfrom time import sleepdef run_proc(name, age, **kwargs):  for i in range(10):    print('子進程運行中,name= %s,age=%d ,pid=%d...' % (name, age, os.getpid()))    print(kwargs)    sleep(0.2)if __name__=='__main__':  p = Process(target=run_proc, args=('test',18), kwargs={"m":20})  p.start()  sleep(1) # 1秒中之后,立即結(jié)束子進程  p.terminate()  p.join()

運行結(jié)果:

子進程運行中,name= test,age=18 ,pid=45097...

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阜南县| 仪征市| 盐山县| 阳谷县| 巩留县| 科技| 青田县| 十堰市| 河津市| 定陶县| 镇沅| 佳木斯市| 和田县| 和静县| 河曲县| 拉萨市| 美姑县| 绵阳市| 防城港市| 全州县| 济宁市| 尤溪县| 鹤峰县| 吉隆县| 灌阳县| 萝北县| 陇西县| 定陶县| 甘孜| 永州市| 绥阳县| 晋州市| 灵丘县| 樟树市| 井冈山市| 罗甸县| 芮城县| 民权县| 乡城县| 聂拉木县| 吉木萨尔县|