在python中使用多线程处理程序比一步一步地处理节省了很多时间,并通过创建和继承PythonThread类,重写run()方法,通过自定义本文介绍了python多线程创建线程Thread类定义和如何定制线程类的过程。
一、Thread类定义
threading.Thread(self,group=None,target=None,name=None,agrs=(),kwargs=None,*,daemon=None)
未来扩展的参数group预留;
参数target是在线程启动后执行的可调用对象;
参数name是线程的名称。默认值为“Thread-N“,N是一个数字;
参数args和kwargs分别表示调用target时的参数列表和关键字参数。
二、自定义线程类
1、创建一个类,继承Python的Thread类,并重写run()方法以实现具体的执行顺序。
fromthreadingimportThread importtime #创建一个类,继承Python的Thread类,并重写run()方法,实现具体的执行顺序,由自己定义 classMyThread(Thread): '''time.sleep代表等待10秒后才能执行''' defrun(self): time.sleep(2) print("我是线程类...") '''从源码Thread类中的run方法复制下一段,当然 不可能,因为继承了Thread,我会去父亲那里找。我只是在这里测试''' try: ifself._target: self._target(*self._args,**self._kwargs) finally: #Avoidarefcycleifthethreadisrunningafunctionwith #anargumentthathasamemberthatpointstothethread. delself._target,self._args,self._kwargs
2、定义函数
defBar(): print("Bar...")
3、线程是通过自定义的线程类创建的,并与函数Bar相关,最终执行此线程。
t1=MyThread(target=Bar) t1.start() print("守护线程的执行已经结束...")
需要注意:
自定义线程不能指定target,因为自定义线程中的任务统一在run方法中;
启动线程统一调用start方法,不要直接调用run方法,因为这不是使用子线程执行任务。
以上是python多线程自定义线程的介绍,希望对大家有所帮助~python学习推荐更多:python教程。