单线程
正常情况下,我们写的绝大多数程序都是单线程,下面是例子:
代码语言:Python复制def function():
for i in range(10):
print("函数", i)
if __name__ == '__main__':
function()
for i in range(5):
print("主函数", i)
编译后执行会先执行function函数再执行main函数中的循环,程序会先执行完function函数,再去执行下面的for循环语句。
多线程
- 导入多线程Thread类
from threading import Thread # 线程类
2.创建示例
代码语言:Python复制def function():
for i in range(10):
print("函数", i)
if __name__ == '__main__':
t = Thread(target=function) # 创建线程对象并给线程安排任务
t.start() # 多线程状态为可以开始工作状态, 具体的执行时间由CPU决定
for i in range(5):
print("主函数", i)
此时可以看到输出结果是function函数与main函数是混杂的,说明两条线程是同时并发执行的,才会出现输出混杂在一起的情况。
3.或者写一个子类来继承线程的属性:
代码语言:Python复制from threading import Thread # 线程类
class MyThread(Thread): #
def run(self): # 固定的-> 当线程被执行的时候, 被执行的就是run()
for i in range(10):
print("子线程", i)
if __name__ == '__main__':
t = MyThread()
t.start() # 开启线程
for i in range(5):
print("主线程", i)
子类继承了Thread类的属性,它里面定义了run函数,当子类被调用时,将运行run函数。
主类中同样是创建多线程子类对象,并开启线程。注意这里千万不要用run方法,否则变成了调用子类的方法,执行完毕后才会执行后面的代码,变成了类似第一条单线程例子。