python-day33--Process類中的方法及屬性


p.daemon = True -->守護進程,守護進程不可以再有子進程,並且主進程死守護進程就死,要寫在p.start()之前
p.join() ---> 主進程等子進程執行完 之后再結束---> 等的時間就是執行時間最長的子進程執行的時間
p.terminate()-->強制終止進程p,不會進行任何清理操作,如果p創建了子進程,該子進程就成了僵屍進程,用該方法需要特別小心這種情況。如果p保存了一個鎖那么也將不會被釋放,進而導致死鎖
p.is_alive() -->如果p仍然運行,返回True
p.name -->查看進程的名稱
p.pid  -->查看進程的pid
 1 from multiprocessing import Process
 2 import os
 3 import time
 4 def work():
 5     print('%s is working' %os.getpid())
 6     time.sleep(3)
 7 if __name__ == '__main__':
 8     p1=Process(target=work)
 9     p1.start() #初始化1
10 
11     print(p1.name)
12     print(p1.pid)
13     print('基於初始化的結果來繼續運行')
14 
15 
16 
17 
18 #結果
19 Process-1
20 7588
21 基於初始化的結果來繼續運行
22 7588 is working
View Code
 1 from multiprocessing import Process
 2 import os
 3 import time
 4 def work():
 5     print('%s is working' %os.getpid())
 6     time.sleep(3)
 7 if __name__ == '__main__':
 8     p1=Process(target=work)
 9     p2=Process(target=work)
10     p3=Process(target=work)
11     p1.daemon=True
12     p2.daemon=True
13     p3.daemon=True
14     p1.start() #初始化1
15     p2.start() #初始化2
16     p3.start() #初始化3
17 
18 #    p3.join()
19 #    p1.join()
20 #    p2.join()
21     print('基於初始化的結果來繼續運行')
22 
23 
24 不加join結果:
25   基於初始化的結果來繼續運行
26 
27 加上join結果:
28  7760 is working
29  1668 is working
30  9628 is working
31  基於初始化的結果來繼續運行
32     
View Code

 

 1 from multiprocessing import Process
 2 import time
 3 def work():
 4     print('%s is working' %os.getpid())
 5     time.sleep(1)
 6 if __name__ == '__main__':
 7     p1=Process(target=work)
 8     p1.start() #初始化1
 9 
10     p1.terminate()
11     time.sleep(3)
12     print(p1.is_alive())
13     print('基於初始化的結果來繼續運行')
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM