2.单线程和多线程

2.单线程和多线程

单线程正常情况下,我们写的绝大多数程序都是单线程,下面是例子:

代码语言: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类代码语言:Python复制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方法,否则变成了调用子类的方法,执行完毕后才会执行后面的代码,变成了类似第一条单线程例子。

相关发现

小狼毫(RIME)输入法入门使用详细教程
365是正规平台吗

小狼毫(RIME)输入法入门使用详细教程

🌼 09-30 🌻 1929
小爱同学的声音怎么更改
beat365官网地址下载

小爱同学的声音怎么更改

🌼 06-28 🌻 588
齐达内1998年世界杯决赛梅开二度带领法国队首夺世界杯冠军的伟大时刻
Android系统tencent文件夹下哪些文件可以删除
beat365官网地址下载

Android系统tencent文件夹下哪些文件可以删除

🌼 08-05 🌻 2847