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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

进程(二)

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进程(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

import os
import time
from multiprocessing import Process
def func(args,args2):
print(args,args2)
time.sleep(3)
print('子進程 :', os.getpid())
print('子進程的父進程 :', os.getppid())
print(12345)

if __name__ == '__main__':
p = Process(target=func,args=('參數','參數2')) # 注冊,一個參數時,應該加逗號,比如(‘參數1’,)
# p是一個進程對象,還沒有啟動進程
p.start() # 開啟了一個子進程
print('*'*10)
print('父進程 :',os.getpid()) # 查看當前進程的進程號
print('父進程的父進程 :',os.getppid()) # 查看當前進程的父進程

?




# 進程的生命周期
# 主進程
# 子進程
# 開啟了子進程的主進程 :
# 主進程自己的代碼如果長,等待自己的代碼執行結束,
# 子進程的執行時間長,主進程會在主進程代碼執行完畢之后等待子進程執行完畢之后 主進程才結束

多進程中的幾個方法?

?

# join()
import time
from multiprocessing import Process

def func(arg1,arg2):
print('*'*arg1)
time.sleep(5)
print('*'*arg2)

if __name__ == '__main__':
p = Process(target=func,args=(10,20))
p.start()
print('hahahaha')與fun方法執行是異步的
p.join() # 是感知一個子進程的結束,將異步的程序改為同步
print('====== : 運行完了')與fun同步

??? #? 開啟多個子進程

?

import os
import time
from multiprocessing import Process

def func(filename,content):
with open(filename,'w') as f:
f.write(content*10*'*')

if __name__ == '__main__':
p_lst = []
for i in range(10):
p = Process(target=func,args=('info%s'%i,0))
p_lst.append(p)
p.start()
for p in p_lst:p.join() # 之前的所有進程必須在這里都執行完才能執行下面的代碼
# [p.join() for p in p_lst]
print([i for i in os.walk(r'E:\python10\day37')])

# 同步 0.1 * 500 = 50
# 異步 500 0.1 = 0.1
# 多進程寫文件
# 首先往文件夾中寫文件
# 向用戶展示寫入文件之后文件夾中所有的文件名

?

?

?

???? # 開啟多進程的第二種方式

import os
from multiprocessing import Process

class MyProcess(Process):
def __init__(self,arg1,arg2):
super().__init__()因為父類里有_init_方法,需導入實現_init_方法,不然報錯
self.arg1 = arg1
self.arg2 = arg2

def run(self):重寫run方法,必須是run
print(self.pid)
print(self.name)
print(self.arg1)
print(self.arg2)

if __name__ == '__main__':
p1 = MyProcess(1,2)
p1.start()
p2 = MyProcess(3,4)
p2.start()

# 自定義類 繼承Process類
# 必須實現一個run方法,run方法中是在子進程中執行的代碼

?

轉載于:https://www.cnblogs.com/mys6/p/10822178.html

總結

以上是生活随笔為你收集整理的进程(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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