什么是多线程:
默认情况下,一个程序只有一个进程和一个线程,代码是依次线性执行的。而多线程则可以并发执行,一次性多个人做多件事,自然比单线程更快。
如何创建一个基本的多线程:
使用threading
模块下的Thread
类即可创建一个线程。这个类有一个target
参数,需要指定一个函数,那么以后这个线程执行的时候,就会执行这个函数的代码。
示例:
import threading
import time
def writing():
for i in range(3):
print(str(i)+'正在写代码……')
time.sleep(1)
def drawing():
for i in range(3):
print(str(i)+'正在画图……')
time.sleep(1)
def single_thread(): #单线程
writing()
drawing()
def mutli_thread(): #多线程
th1 = threading.Thread(target=writing)
th2 = threading.Thread(target=drawing)
th1.start()
th2.start()
if __name__ == '__main__':
single_thread()
mutli_thread()
查看当前线程:
- threading.current_thread:在线程中执行这个函数,会返回当前线程的对象。
- threading.enumerate:获取整个程序中所有的线程。
继承自threading.Thread类:
- 我们自己写的类必须继承自
threading.Thread
类。 - 线程代码需要放在run方法中执行。
- 以后创建线程的时候,直接使用我们自己创建的类来创建线程就可以了。
- 为什么要使用类的方式创建线程呢?因为类可以更加方便的管理我们的代码,可以让我们使用面向对象的方式进行编程。
示例:
import threading
import time
#写成类的方式创建多线程
class WritingThread(threading.Thread):
def run(self):
the_thread = threading.current_thread()
print(the_thread.name)
for i in range(3):
print(str(i)+'正在写代码')
time.sleep(1)
class DrawThread(threading.Thread):
def