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

这篇具有很好参考价值的文章主要介绍了Python创建多线程的两种常用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python 创建线程,Python,java,python,java,开发语言

这篇文章主要为大家详细介绍了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文章来源地址https://www.toymoban.com/news/detail-608057.html

到了这里,关于Python创建多线程的两种常用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面的两种方法

    本页介绍如何使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面。Qt Designer是一个图形UI设计工具,可以作为独立的二进制文件(pyside6-designer)提供,也可以嵌入到Qt Creator IDE中。它在Qt Creator中的使用在Using Qt Designer中描述。 设计存储在.ui文件中,这是一种基于

    2024年02月07日
    浏览(48)
  • python元组tuple添加元素的两种方法

    方法一 :可以使用python内置的__add__()方法,使用该方法为python元组添加元素时,需要使用元组来对象来进行调用,然后将需要添加的元素,以元组的数据类型进行传递,该方法并需修改调用对象,而是以新的元组进行返回,具体可见下方的实例代码。 方法二 :将python的元组

    2024年02月12日
    浏览(38)
  • 折半查找(二分查找)的两种方法及实现 Python

    概念: 在计算机科学中,折半查找,也称二分查找,是一种在有序数组中查找某一特定元素的搜索算法。 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一

    2024年02月09日
    浏览(41)
  • 关于 python 在 pycharm 下载库的两种方法

    正常操作: 1.点击左上角File 。  2.点击setting,进入设置界面 。 3.点击python Interpreter。  4.添加新库时,点击右上侧 “ + ” 号,出现新界面。  5,在搜索框搜索想添加的库,点击左下角 Instal  Package , 等待完成即可。 特殊情况:  此时可能出现失败情况 直接打开电脑搜索栏,

    2024年02月12日
    浏览(42)
  • 【python】虚拟屏幕实现selenium截图的两种方法介绍

    可以使用虚拟屏幕的方式,在虚拟屏幕上运行浏览器并进行截图操作,这样就不会影响当前屏幕的展示。 具体实现可以使用Xvfb和pyvirtualdisplay库。Xvfb是虚拟X11服务器,可以在内存中创建一个虚拟屏幕,而pyvirtualdisplay是一个Python库,可以在Python代码中启动和控制Xvfb。 以下是一

    2024年01月22日
    浏览(38)
  • vscode运行Python的两种方法,及无法运行的原因

    下面介绍的vscode运行Python代码的方法基于的一个前提条件是:当前的计算机已经安装好了Python,且已经配置好了相关的环境变量。如果要查看是否已经都安装好了,可以打开Windows系统的命令行工具Windows PowerShell,如果是Mac系统或Linux系统,则可以打开终端,然后键入命令:

    2024年01月21日
    浏览(43)
  • Python识别二维码的两种方法(cv2)

    在学习Python处理二维码的过程中,我们看到的大多是“用python生成酷炫二维码”、“用Python制作动图二维码”之类的文章。而关于使用Python批量识别二维码的教程,并不多见。所以今天我会给大家分享两种批量识别二维码的Python技巧! pyzbar + PIL 二维码又称二维条码,常见的

    2024年02月08日
    浏览(36)
  • python中修改和新增字典中键值对的两种方法

    方法一:方括号[]法 dic1[\\\'key\\\'] = 值,即可用于修改字典中的键值对,又可用于新增字典中的键值对。 当键存在时,为修改。 当键不存在时,为新增。 方法二:dic1.update(dic2) dic1.update(dic2)既可用于修改字典中的键值对,又可用于新增字典中的键值对。 当dic2中有键与dic1中键冲突

    2024年02月11日
    浏览(44)
  • 【Qt】QThread & moveTothread-多线程的两种实现方法

    一、如何理解多线程 二、实现多线程的两种方式(面向应用) 2.1 继承 QThread 的类 2.2 (推荐这种方式)函数 moveTothread() 三、多线程的释放问题(善后工作) 类似我们单片机的编程,如在 Keil5 中对 51 单片机或者 STM32 单片机进行编程时,如果我们使用模块化编程,那么 main.c 文

    2024年02月01日
    浏览(44)
  • python知识点100篇系列(11)-浮点数四舍五入的两种方法

    Python 的四舍五入主要有两种方式; 内置函数 round(number[, ndigits]) 使用 Decimal 先说结论: 如果是对金额的四舍五入,不建议使用内置函数,原因如下: 使用round方法: python3中的round函数对浮点数进行四舍五入的规则: 参数ndigits 不为 0 的情况 如果保留位数的后一位小于等于

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包