前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.单线程和多线程

2.单线程和多线程

原创
作者头像
jiagui
发布2024-07-06 16:42:29
850
发布2024-07-06 16:42:29
举报
文章被收录于专栏:Python多线程Python多线程

单线程

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

代码语言: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循环语句。

多线程

  1. 导入多线程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方法,否则变成了调用子类的方法,执行完毕后才会执行后面的代码,变成了类似第一条单线程例子。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单线程
  • 多线程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档