进程线程补充

xiaoxiao2022-07-05  71

显示当前进程或线程 multiprocessing.current_process()#显示当前进程 threading.current_thread()#显示当前线程 join等待:子进程或子线程结束后再执行主进程或主线程 pro_name.join() thr_name.join() 中止进程:在主进程遇到这个会自动中止所开的进程,线程不能中途中止,必须等到自己结束或异常被迫中止。 pro_name.terminate() 查看进程或线程id:每一个开启执行的进程或线程都有唯一的id来识别,这里要注意是开启且执行,若实例化但未开启,会返回None multiprocessing.current_process().pid#主进程的id pro_name.pid#子进程的id threading.current_thread().ident#主线程的id thr_name.ident#子线程的id 给进程或线程取别名:取别名有两种方式,可以在显示当前进程或线程中查看到你取的别名。 pro = multiprocessing.Process(target = func,name = "xxx")#实例化时取别名 pro_name.name = "xxx"#实例化后,开启前,利用name属性直接修改 thr = threading.Thread((target = func,name = "xxx")#实例化时取别名 thr_name.name = "xxx"#实例化后,开启前,利用name属性直接修改 查看当前进程或线程的状态:正在执行的话返回True,执行完或还没开启就返回False。 pro_name.is_alive() #查看进程的生存状态 thr_name.is_alive() #查看线程的生存状态 开启守护进程或线程:守护进程或线程的意思是在主进程或线程结束后,子进程或子线程会自动中止退出。 multiprocessing.Process(target=func,daemon=True)#开启进程守护 threading.Thread(target=func,daemon=True)#开始线程守护

 面向对象化使用线程和进程

这里以进程为例

关键点:

继承Process类重写__init__方法重写__run__方法

进程开启时会自动调用类中的run方法,而target的函数是由默认的run运行的。

import multiprocessing import time class Myprocess(multiprocessing.Process): def __init__(self,*args,**kwargs): super().__init__() self.a = args self.b = kwargs self.name = "wl" self.start() def run(self): print(multiprocessing.current_process())#打印当前进程 print(self.pid)#打印当前进程id print(self.a) print(self.b) if __name__ == '__main__': print("---主进程开始---") pro = Myprocess(1,2,3,a=1,b=2,c=3) time.sleep(2) print("---主进程结束---") ---主进程开始--- <Myprocess(wl, started)> 14848 (1, 2, 3) {'a': 1, 'b': 2, 'c': 3} ---主进程结束---

 

转载请注明原文地址: https://www.6miu.com/read-4968439.html

最新回复(0)