我们都知道,代码编程不是固定的东西,而是非常灵活的内容,根据不同的内容,我们可以拓展出很多条内容,最终目的还是为了可以实现结果,给大家举例说明其中一个最常用的多线程吧~以及实现的几种方式。
1. 用函数创建多线程
在Python3中,Python提供了一个内置模块 threading.Thread,可以很方便地让我们创建多线程。
举个例子
importtime fromthreadingimportThread #自定义线程函数。 deftarget(name="Python"): foriinrange(2): print("hello",name) time.sleep(1) #创建线程01,不指定参数 thread_01=Thread(target=target) #启动线程01 thread_01.start() #创建线程02,指定参数,注意逗号 thread_02=Thread(target=target,args=("MING",)) #启动线程02 thread_02.start()
可以看到输出
helloPython helloMING helloPython helloMING
2.用类创建多线程
相比较函数而言,使用类创建线程,会比较麻烦一点。
首先,我们要自定义一个类,对于这个类有两点要求,
l必须继承 threading.Thread 这个父类;
l必须复写 run 方法。
来看一下例子为了方便对比,run函数我复用上面的main。
importtime fromthreadingimportThread classMyThread(Thread): def__init__(self,type="Python"): #注意:super().__init__()必须写 #且最好写在第一行 super().__init__() self.type=type defrun(self): foriinrange(2): print("hello",self.type) time.sleep(1) if__name__=='__main__': #创建线程01,不指定参数 thread_01=MyT hread() #创建线程02,指定参数 thread_02=MyThread("MING") thread_01.start() thread_02.start()
当然结果也是一样的。
helloPython helloMING helloPython helloMING
3.线程对象的方法
上面介绍了当前 Python 中创建线程两种主要方法。
#如上所述,创建一个线程 t=Thread(target=func) #启动子线程 t.start() #阻塞子线程,待子线程结束后,再往下执行 t.join() #判断线程是否在执行状态,在执行返回True,否则返回False t.is_alive() t.isAlive() #设置线程是否随主线程退出而退出,默认为False t.daemon=True t.daemon=False #设置线程名 t.name="My-Thread"
至此,Python线程基础知识,我们大概都介绍完了。感兴趣的小伙伴可以多浏览看下内容哦~如果还想知道更多的python知识,可以到python学习网进行查询。