• 技术文章 >Python技术 >Python基础教程

    python中实现多线程有几种方式?

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

    1. 用函数创建多线程

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

    举个例子

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    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()

    可以看到输出

    1

    2

    3

    4

    hello Python

    hello MING

    hello Python

    hello MING

    2. 用类创建多线程

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

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

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

    l 必须复写 run 方法。

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    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()

    当然结果也是一样的。

    1

    2

    3

    4

    hello Python

    hello MING

    hello Python

    hello MING

    3. 线程对象的方法

    上面介绍了当前 Python 中创建线程两种主要方法。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    # 如上所述,创建一个线程

    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中实现多线程有几种方式
    上一篇:如何用包管理器安装Python第三方模块? 下一篇:python如何使用多线程执行多个函数?

    相关文章推荐

    • 怎么用python写简单的游戏脚本?• 如何用python tkinter插入显示图片?• 如何快速掌握python选择排序算法?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网