最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python中实现多线程有几种方式?

    正文概述    2020-01-23   348

    我们都知道,代码编程不是固定的东西,而是非常灵活的内容,根据不同的内容,我们可以拓展出很多条内容,最终目的还是为了可以实现结果,给大家举例说明其中一个最常用的多线程吧~以及实现的几种方式。

    1. 用函数创建多线程

    Python3中,Python提供了一个内置模块 threading.Thread,可以很方便地让我们创建多线程。

    举个例子

    import time
    from threading import Thread
     
    # 自定义线程函数。
    def target(name="Python"):
        for i in range(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()

    可以看到输出

    hello Python
    hello MING
    hello Python
    hello MING

    2. 用类创建多线程

    相比较函数而言,使用类创建线程,会比较麻烦一点。

    首先,我们要自定义一个类,对于这个类有两点要求,

    必须继承 threading.Thread 这个父类;

    必须复写 run 方法。

    来看一下例子为了方便对比,run函数我复用上面的main。

    import time
    from threading import Thread
     
    class MyThread(Thread):
        def __init__(self, type="Python"):
            # 注意:super().__init__() 必须写
            # 且最好写在第一行
            super().__init__()
            self.type=type
     
        def run(self):
            for i in range(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()

    当然结果也是一样的。

    hello Python
    hello MING
    hello Python
    hello MING

    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学习网进行查询。


    起源地下载网 » python中实现多线程有几种方式?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元