Python创建多线程的两种常用方法

Python创建多线程的两种常用方法_第1张图片

这篇文章主要为大家详细介绍了Python中创建多线程的两种常用方法,文中的示例代码简洁易懂,对我们掌握Python有一定的帮助,需要的可以收藏一下

经过总结,Python创建多线程主要有如下两种方法:

  • 函数

接下来,我们就来揭开多线程的神秘面纱。

1. 用函数创建多线程

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

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

可以看到输出

hello Python
hello MING
hello Python
hello MING

2. 用类创建多线程

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

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

  • 必须继承 threading.Thread 这个父类;
  • 必须复写 run 方法。

这里的 run 方法,和我们上面线程函数的性质是一样的,可以写我们的业务逻辑程序。在 start() 后将会调用。

来看一下例子 为了方便对比,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

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

    # 创建线程02,指定参数

    thread_02 = MyThread("MING")

    thread_01.start()

    thread_02.start()

当然结果也是一样的。

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创建多线程的两种常用方法总结的文章就介绍到这了,希望可以对你有所帮助。

来源:微点阅读  https://www.weidianyuedu.com

你可能感兴趣的:(Python,java,python,java,开发语言)