iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈一下python中threading模块
  • 470
分享到

浅谈一下python中threading模块

pythonthreadingthreading模块 2023-05-18 05:05:52 470人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、Thread的使用二、threading.activeCount()的使用三、threading.enumerate()的使用。四、threading.setDaemon()

python中threading模块详解,threading提供了一个比thread模块更高层的api来提供线程并发性。这些线程并发运行并共享内存。

下面来看threading模块的具体用法:

一、Thread的使用

目标函数可以实例化一个Thread对象,每个Thread对象代表着一个线程,可以通过start()方法,开始运行。

这里对使用多线程并发,和不适用多线程并发做了一个比较:

首先是不使用多线程的操作:

代码如下:

#!/usr/bin/Python 
#compare for multi threads 
import time 
def worker(): 
    print"worker" 
    time.sleep(1) 
    return 
    if__name__ =="__main__": 
    for i in xrange(5): 
    worker()

执行结果如下:

747195a1aeb70877755f78ae380f4f00.png

下面是使用多线程并发的操作:

代码如下:

#!/usr/bin/python 
import threading 
import time 
defworker(): 
    print"worker" 
    time.sleep(1) 
    return 
    fori in xrange(5): 
        t=threading.Thread(target=worker) 
        t.start()

20e089830afc1656e50a4d8daabf0d4d.png

可以明显看出使用了多线程并发的操作,花费时间要短的很多。

二、threading.activeCount()的使用

此方法返回当前进程中线程的个数。返回的个数中包含主线程。

代码如下:

#!/usr/bin/python 
#current's number of threads 
import threading 
import time 
defworker(): 
    print"test" 
    time.sleep(1) 
    for i in xrange(5): 
        t=threading.Thread(target=worker) 
        t.start() 
        print"current has %d threads" % (threading.activeCount() -1)

196b4aec65ef8e2a82506686bafb2fa4.png

三、threading.enumerate()的使用。

此方法返回当前运行中的Thread对象列表。

代码如下:

#!/usr/bin/python 
#test the variable threading.enumerate() 
import threading 
import time 
defworker(): 
    print"test" 
    time.sleep(2) 
    threads=[] 
    for i in xrange(5): 
        t=threading.Thread(target=worker) 
        threads.append(t) 
        t.start() 
        for item in threading.enumerate(): 
            print item 
            print for item in threads: 
                print item

e16cc9a5d0d855a4ec0cff6fdcf0bed3.png

四、threading.setDaemon()的使用。

设置后台进程。

代码如下:

#!/usr/bin/python 
#create a daemon 
import threading 
import time 
def worker(): 
    time.sleep(3) 
    print"worker" 
    t=threading.Thread(target=worker) 
    t.setDaemon(True) 
    t.start() 
    print"haha"

b16fa9461e1525baf8f704bee4516ccd.png

可以看出worker()方法中的打印操作并没有显示出来,说明已经成为后台进程。

到此这篇关于浅谈一下python中threading模块的文章就介绍到这了,更多相关python的threading模块内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈一下python中threading模块

本文链接: https://www.lsjlt.com/news/211693.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈一下python中threading模块
    目录一、Thread的使用二、threading.activeCount()的使用三、threading.enumerate()的使用。四、threading.setDaemon()...
    99+
    2023-05-18
    python threading threading模块
  • 浅谈Python模块导入规范
    模块导入的规范 模块是类或函数的集合,用于实现某个功能。模块的导入和Java 中包的导入的概念很相似都使用import语句。在Python中,如果需要在程序中调用标准库或其他第三方...
    99+
    2024-04-02
  • python中threading模块如何使用
    本篇内容介绍了“python中threading模块如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Thread的使用目标函数可以...
    99+
    2023-07-06
  • 浅谈一下Python中的with用法
    目录一、With语句是什么二、with如何工作三、相关术语一、With语句是什么 有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常...
    99+
    2023-05-15
    Python with Python with用法
  • python中threading模块怎么使用
    python中threading模块详解,threading提供了一个比thread模块更高层的API来提供线程的并发性。这些线程并发运行并共享内存。下面来看threading模块的具体用法:一、Thread的使用目标函数可以实例化一个Th...
    99+
    2023-05-15
    Python threading
  • Python 多线程之 threading 模块
    在之前的文章中,我们已经介绍了 Python 通过 _thread 和 threading 模块提供了对多线程的支持,threading 模块兼具了 _thread 模块的现有功能,又扩展了一些新的功能,具有十分丰富的线程操作功能,本节我们...
    99+
    2023-09-16
    python 开发语言 java
  • threading模块如何在python中应用
    threading模块如何在python中应用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python有哪些常用库python常用的库:1.requesuts;2.scr...
    99+
    2023-06-14
  • 怎么在Python中使用threading模块
    这篇文章将为大家详细讲解有关怎么在Python中使用threading模块,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的数据类型有哪些python的数据类型:1. 数字类型,包...
    99+
    2023-06-14
  • threading 模块如何在Python中使用
    threading 模块如何在Python中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。创建线程使用 threading 模块创建线程通常有两种方式:1)使用 thr...
    99+
    2023-06-14
  • 浅谈一下Spring中的createBean
    目录找到BeanClass并且加载类实例化前实例化Supplier创建对象工厂方法创建对象推断构造方法BeanDefionition 的后置处理实例化后属性填充Aware回调初始化前...
    99+
    2024-04-02
  • 浅谈一下Java的双亲委派模式
    目录类加载器是什么?类加载器分类双亲委派模型工作流程双亲委派模型好处说起双亲委派模型,不得不说一下类加载器。 类加载器是什么? 当我们编译Java类时,JVM会创建与平台和机器无关的...
    99+
    2023-05-18
    java 模型 java双亲委派
  • Python 常用模块threading和Thread模块之线程池
    目录1. 池的概念2. 自定义线程池3. 使用Python内置线程池4. 池的其他操作1. 池的概念 主线程: 相当于生产者,只管向线程池提交任务。 并不关心线程池是如何执行任务的...
    99+
    2024-04-02
  • 浅谈一下Android的Activity
    目录前言 :一 Activity 启动和结束二 Activity 生命周期1 Activity 的四种状态2 流程解读3 具体功能4 总结三 Activity 启动模式分类1 Sta...
    99+
    2023-05-16
    Android组件 Android Activity
  • 简单谈谈Python中的模块导入
    目录模块与包 __import__ 模块缓存 imp 与 importlib 模块 惰性导入 总结参考资料本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导...
    99+
    2024-04-02
  • 浅谈一下Java中的堆和栈
    Java数据类型在执行过程中存储在两种不同形式的内存中:栈和堆,它们通常由运行Java虚拟机(JVM)的底层平台维护。本文从Java软件开发的角度提供了对这两种内存类型的一些见解。 ...
    99+
    2023-05-18
    Java Java
  • python threading模块的用法是什么
    Python的threading模块提供了多线程编程的功能。它允许我们同时执行多个线程,从而实现并行处理任务。 使用threadin...
    99+
    2024-02-29
    python threading
  • Python常用模块之threading和Thread模块及线程通信
    目录1. 线程通信1.1 互斥锁1.2 线程间全局变量的共享1.3 共享内存间存在竞争问题1.4 使用锁来控制共享资源的访问分析此阶段,我们会发现进程和线程的痛点!!!2. 队列的基...
    99+
    2024-04-02
  • 浅谈Python安装并使用redis模块的方法
    这篇文章给大家分享的是有关浅谈Python安装并使用redis模块的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。安装和使用安装安装redis模块pip3 inst...
    99+
    2024-04-02
  • python simplejson模块浅
    一、背景知识JSON:引用百科描述如下,具体请自行搜索相关介绍:    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd ...
    99+
    2023-01-31
    模块 python simplejson
  • 浅谈一下关于Python对XML的解析
    目录什么是XML?python对XML的解析1.SAX (simple API for XML )2.DOM(Document Object Model)3.ElementTree(...
    99+
    2023-05-12
    Python XML Python XML解析
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作