Python進程,多進程,獲取進程id,給子進程傳遞參數(shù)操作示例
本文實例講述了Python進程,多進程,獲取進程id,給子進程傳遞參數(shù)操作。分享給大家供大家參考,具體如下:
線程與線程之間共享全局變量,進程之間不能共享全局變量。
進程與進程相互獨立 (可以通過socket套接字實現(xiàn)進程間通信,可以通過硬盤(文件)實現(xiàn)進程通信,也可以通過隊列(Queue)實現(xiàn)進程通信)
子進程會拷貝復(fù)制主進程中的所有資源(變量、函數(shù)定義等),所以子進程比子線程耗費資源。
demo.py(多進程):
import threading # 線程
import time
import multiprocessing # 進程
def test1():
while True:
print("1--------")
time.sleep(1)
def test2():
while True:
print("2--------")
time.sleep(1)
def main():
# t1 = threading.Thread(target=test1) # 線程
# t2 = threading.Thread(target=test2)
# t1.start() # 多線程的方式實現(xiàn)多任務(wù)
# t2.start()
p1 = multiprocessing.Process(target=test1) # 進程 (進程比線程占用資源多)
p2 = multiprocessing.Process(target=test2)
p1.start() # 多進程的方式實現(xiàn)多任務(wù) (進程比線程占用資源多)
p2.start()
if __name__ == "__main__":
main()
demo.py(獲取進程、父進程id):
import multiprocessing
import os
import time
def test():
while True:
print("----in 子進程 pid=%d ,父進程的pid=%d---" % (os.getpid(), os.getppid()))
time.sleep(1)
def main():
# os.getpid() 獲取當前進程的進程id
# os.getppid() 獲取當前進程的父進程id
print("----in 主進程 pid=%d---父進程pid=%d----" % (os.getpid(), os.getppid()))
p = multiprocessing.Process(target=test)
p.start() # 開啟子進程
if __name__ == "__main__":
main()
demo.py(給子進程傳遞參數(shù)):
import multiprocessing
def test(a, b, c, *args, **kwargs):
print(a) # 11
print(b) # 22
print(c) # 33
print(args) # (44, 55, 66, 77, 88)
print(kwargs) # {'age': 20, 'name': '張三'}
def main():
p = multiprocessing.Process(target=test, args=(11, 22, 33, 44, 55, 66, 77, 88), kwargs={"name": "張三","age": 20})
p.start()
if __name__ == "__main__":
main()

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》、《Python+MySQL數(shù)據(jù)庫程序設(shè)計入門教程》及《Python常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
python機器學(xué)習(xí)樸素貝葉斯算法及模型的選擇和調(diào)優(yōu)詳解
這篇文章主要為大家介紹了python機器學(xué)習(xí)樸素貝葉斯及模型的選擇和調(diào)優(yōu)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-11-11
Python實現(xiàn)提取給定網(wǎng)頁內(nèi)的所有鏈接
這篇文章主要和大家分享一個實用的Python腳本,可以實現(xiàn)從給定的網(wǎng)頁中檢索所有鏈接,并將其保存為txt文件,需要的小伙伴可以收藏一下2023-05-05
詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程
這篇文章主要介紹了詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
pytorch nn.Conv2d()中的padding以及輸出大小方式
今天小編就為大家分享一篇pytorch nn.Conv2d()中的padding以及輸出大小方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python中g(shù)etattr函數(shù)使用方法 getattr實現(xiàn)工廠模式
這篇文章主要介紹了python中g(shù)etattr()這個函數(shù)的一些用法,大家參考使用吧2014-01-01
ubuntu系統(tǒng)如何從python3.7升級到python3.8
這篇文章主要給大家介紹了關(guān)于ubuntu系統(tǒng)如何從python3.7升級到python3.8的相關(guān)資料,Python是一種廣泛使用的編程語言,而Ubuntu是一個流行的開源操作系統(tǒng),通過升級Python您可以獲得新功能、性能改進和安全修復(fù),需要的朋友可以參考下2023-11-11

