Python程序,多程序,獲取程序id,給子程序傳遞引數操作示例
阿新 • • 發佈:2020-01-09
本文例項講述了Python程序,多程序,獲取程序id,給子程序傳遞引數操作。分享給大家供大家參考,具體如下:
執行緒與執行緒之間共享全域性變數,程序之間不能共享全域性變數。
程序與程序相互獨立 (可以通過socket套接字實現程序間通訊,可以通過硬碟(檔案)實現程序通訊,也可以通過佇列(Queue)實現程序通訊)
子程序會拷貝複製主程序中的所有資源(變數、函式定義等),所以子程序比子執行緒耗費資源。
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() # 多執行緒的方式實現多工 # t2.start() p1 = multiprocessing.Process(target=test1) # 程序 (程序比執行緒佔用資源多) p2 = multiprocessing.Process(target=test2) p1.start() # 多程序的方式實現多工 (程序比執行緒佔用資源多) 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(給子程序傳遞引數):
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,88),kwargs={"name": "張三","age": 20}) p.start() if __name__ == "__main__": main()
更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python程序與執行緒操作技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》、《Python+MySQL資料庫程式設計入門教程》及《Python常見資料庫操作技巧彙總》
希望本文所述對大家Python程式設計有所幫助。