Python线程

Python的单线程和多线程 python的单线程和多线程 阅读详情

Python线程

1、什么是线程
  • 进程:程序运行在操作系统上的实例
  • 线程:轻量级的进程,进程中可划分出多个线程,线程可独立的调度运行,(进程中分割出来可以独立运行的实例)
  • 进程:操作系统分配资源的基本单位(进程之间隔离)
  • 线程:操作系统下调度的基本单位,进程中多个线程共享进程中的资源。
2、进程和线程的区别
  • 一个程序至少有一个进程,一个进程至少有一个线程。
  • 线程的划分尺度小于进程(资源比进程少),使得多线程程序并发性高。
  • 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大提高了程序的运行效率
  • 线程不能独立运行,必须放在进程中。
3、Python中多线程的创建

​ 创建多线程类似有创建进程。

  • 首先导入模块:

    import threading

  • 创建线程对象:

    t = threading.Thread(target=线程任务函数,args=(传递的实参元组))

  • 启动线程:

    t.start()

  • 阻塞主线程等待子线程完成

    t.join()

  • Demo:

    import threading
    import time
    
    def my_Task(num):
    print("进程:%s 正在下载。。。%d" % (threading.current_thread().name, num))
    time.sleep(1)
    
    def main():
    
    # 创建线程的实例对象
    
    for i in range(5):
        t = threading.Thread(target=my_Task, args=(i,))
    
        # 启动线程
        t.start()
    
    if __name__ == '__main__':
        main()
  • 运行效果

    进程:Thread-1 正在下载。。。0
    进程:Thread-2 正在下载。。。1
    进程:Thread-3 正在下载。。。2
    进程:Thread-4 正在下载。。。3
    进程:Thread-5 正在下载。。。4
4、继承Thread类创建线程
  • 使用步骤:

    • 创建类,继承Thread类

    class MyThread(Thread)

    • 重写构造方法__init__方法,调用一下父类Thread中的__init__方法。
      def __init__(self):
          Thread.__init__(self)
    • 重写run方法,run方法里面写上执行线程要做的任务的代码
      def run(self):
    
          for i in range(5):
    
              print("%s 线程 正在打印----> %d" % (self.name, i))
              time.sleep(1)
  • 完整Demo

    from threading import Thread
    
    import time
    class MyThread(Thread):
    
        def init(self):
    
            Thread.init(self)
    
        def run(self):
    
            for i in range(5):
    
                print("%s 线程 正在打印----> %d" % (self.name, i))
    
                time.sleep(1)
    
    def main():
        t1 = MyThread()
        t1.start()
        t1.join()
    
    if __name__ == '__main__':
    
        main()
    
  • 运行结果:

    Thread-1 线程 正在打印----> 0
    Thread-1 线程 正在打印----> 1
    Thread-1 线程 正在打印----> 2
    Thread-1 线程 正在打印----> 3
    Thread-1 线程 正在打印----> 4
5、Thread类中的常用方法
  • start(): 开始运行生成的线程实例
  • setName(): 设置生成的线程的名字
  • run(): 重载此方法,作为线程运行的部分
  • isAlive(): 查看线程是否活动
  • join(): 阻塞主线程,等待子线程结束
  • getName(): 得到线程名字
  • threading.current_thread().name: 获取当前线程对象
Python:线程之定位与销毁_python 线程销毁 和平时的故障排查相似,先通过 ps 命令看看目标进程的线程情况,因为已经是 setName 设置过线程名,所以正常来说应该是看到对应的线程的。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。不过为啥 Python 那个看不到呢? 阅读详情

相关推荐

群晖设置公网ipv6方式域名解析访问

群晖、IPV6、域名解析

爬山虎的博客 2万+

Python-线程、线程池

1. Python多线程 python3中常用的线程模块为:_thread(Python2中的thread)、threading(推荐) 线程池:ThreadPoolExecutor 2. 使用线程 第一种方式: _thread.start_new_thread(function,args[,kwargs]) function:线程函数 args:传递给线程函数的参数,必须是tuple(元组)类型...

吴唐人的博客 4434

CANoe VLAN配置的艺术:如何通过脚本自动化实现高效车载网络测试

本文深入探讨了CANoe VLAN配置的自动化实现,通过CAPL脚本与Python工具链的结合,提升车载网络测试效率。重点解析了硬件侧VLAN配置与软件侧VLAN配置的交互机制,并提供了实用的脚本开发示例和调试技巧,帮助工程师快速构建高效的自动化测试方案。

qqq44的博客 617

【python线程与线程池】

threading模块的使用方法线程同步与锁机制使用线程池提高并发效率自定义线程类。

武帝为此的博客 1234

Coze平台智能体开发实战:打造测试工程师的AI助手

智能体是具备特定身份和能力的AI实体,由大语言模型(LLM)驱动,并通过插件、知识库和工作流扩展其能力。明确的角色定位:可以设定特定身份和专业领域扩展能力:通过插件连接外部工具和服务记忆能力:通过知识库存储和检索专属信息流程化处理:通过工作流执行复杂多步任务通过Coze平台创建测试工程师智能体,可以显著提升测试效率和质量。明确的角色定位:聚焦测试工程师的实际需求丰富的知识库:提供准确的领域知识支持合适的工具集成:通过插件连接现有工具链持续迭代优化:根据反馈不断改进智能体行为自动化测试生成。

hogwarts_beibei的博客 1005

先进封装Interposer仿真步骤及说明

摘要: Interposer仿真是2.5D/3DIC封装设计的关键环节,涵盖信号完整性(SI)、电源完整性(PI)、热及结构应力分析。流程分为五个阶段:1)前处理,定义层叠结构与材料属性;2)参数提取,通过3D电磁建模获取TSV、传输线等寄生参数;3)仿真设置,选择求解器并设定频率范围;4)结果分析,评估信号损耗、阻抗及电源网络性能;5)后处理,进行多物理场协同仿真并生成模型。核心挑战在于多尺度与多物理场耦合,需优先确保高速信号与电源网络的仿真精度。常用工具包括Ansys HFSS、Cadence Sigr

DSY_0324的博客 1351

Python的线程01 认识线程

正式的Python专栏第41篇,同学站住,别错过这个从0开始的文章! 前面文章写了很多,都是比较基础的。 这篇开始我们将进入中级编程。处理更加复杂事情。比如本文的线程,咱们先从基础知识入手! 什么是线程? 我们知道工人都是同时在工厂工作,复制各自的工作的。他们就是一个一个独立运行的单位! 线程也是类似这样的一个独立的运行单位,多线程,就是多个独立的运行单位,同时执行同样的事情。 简单这样理解,后面会进行对比。 threading.Thread 类是Python中的线程类,它封装了线程的信息和一些同用的.

持续学习持续开发,我是雷学委! 2491

Arduino-CRSF库详解:嵌入式端CRSF协议解析与ELRS接收机集成

CRSF(Crossfire Serial Protocol)是一种面向FPV无人机的轻量级、高实时性串行通信协议,采用单总线异步传输与8位CRC-8校验机制,广泛应用于遥控链路与遥测交互。其核心在于帧同步(0xC8起始字节)、反相逻辑电平及无重传的广播式设计,对嵌入式平台的UART精度、电平匹配和状态机健壮性提出严苛要求。Arduino-CRSF库正是为资源受限MCU(如ESP32、STM32、ATmega328P)提供零配置、中断安全的协议解析能力,封装了CRC查表计算、超时恢复、多级同步验证等关键机制

weixin_35756690的博客 417

Python线程详解

Python线程

qq_45070541的博客 1万+

从零解析:富斯i6遥控器与STM32的IBUS协议通信实战

本文详细解析了富斯i6遥控器与STM32通过IBUS协议通信的实战指南,涵盖硬件准备、协议解析、驱动实现及常见问题解决。特别适合机器人及智能小车开发者,提供低成本、高可靠性的无线控制方案,助力快速实现多通道控制功能。

weixin_29193359的博客 441

SAP ABAP干货:用REUSE_ALV_GRID_DISPLAY_LVC实现ALV多屏幕独立布局(含handle参数详解)

本文详细解析了SAP ABAP中如何使用REUSE_ALV_GRID_DISPLAY_LVC函数实现ALV多屏幕独立布局,重点介绍了handle参数的技术原理和实际应用。通过变式标识符和LTDX表存储机制,开发者可以确保不同ALV报表屏幕的布局设置互不干扰,提升复杂报表场景下的用户体验。

weixin_29268267的博客 312

python 线程_python 线程

一、什么是线程线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(us...

weixin_39867066的博客 188

基于Python的上市公司年报PDF文本抓取与财务风险分析系统

随着大数据时代的到来,金融数据分析已成为投资决策和风险管理的重要工具。上市公司年报包含了丰富的财务信息和经营数据,通过对这些数据的提取和分析,可以评估公司的财务状况和潜在风险。本文将详细介绍如何使用Python构建一个完整的上市公司年报文本抓取与财务风险分析系统,涵盖PDF文本提取、数据清洗、财务指标计算和风险分析等全流程。

2201_76125261的博客 314

python线程如何终止线程_python怎样终止线程

在python中启动和关闭线程:一、启动线程首先导入threadingimport threading然后定义一个方法def serial_read():......然后定义线程,target指向要执行的方法myThread = threading.Thread(target=serial_read)启动它myThread.start()二、停止线程import inspectimport cty...

weixin_39755824的博客 2383

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python——线程总结

ProcessPoolExecutor:进程池ThreadPoolExecutor:线程池t1 = ThreadPoolExecutor(max_workers=5):创建一个线程池,线程池中最多支持同时执行多少个任务t1.submit(函数名称):往线程池中提交执行的任务t1.shutdown():等待线程池中所有的任务执行完毕之后,开始执行。

python全栈 1415

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

python线程,线程池

线程在一个进程的内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”叫做线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

liangjiao_shou的博客 985

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python 线程 全面解析

文章系统整理了线程的知识,解读了如何在Python中实现线程!

storyfull 3017

python线程池wait_python线程、线程池

一、Python线程Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。1、创建线程1.1 自定义线程#自定义线程importthreadingimporttime#创建一个线程,继承threading.ThreadclassMyThread(threading.Thread):def __init__(self, num):threading.Thread.__init_...

weixin_39862716的博客 563

python 线程退出_python线程退出

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!如果某线程并未使用很多 io 操作, 它会在自己的时间片内一直占用处理器(和 gil)。 也就是说,io 密集型的 python 程序比计算密集 型的程序更能充分利用多线程环境的好处。 退出线程当一个线程结束计算,它就退出了。 线程可以调用 thread.exit()之类的退出函数,...

weixin_39850981的博客 1332

python多线程结束线程_Python线程– Python多线程

python多线程结束线程Python threading module is used to implement multithreading in python programs. In this lesson, we will study about Thread and different functions of python threading module. Python multi...

从零开始的教程世界 2566

Python之线程

1.线程简介 (1)线程概念 线程是指进程内的一个执行单元,也是进程内的可调度实体;相当于是进程的一个子任务 是操作系统能够进行运算调度的最小单位 (2)线程与进程 一个程序中至少有一个进程,而一个进程中也至少有一个线程 2.线程的创建及使用 ...

Zachary_H的博客 1219

python获取线程名称_Python-线程

1.线程Python中使用线程有两种方式:函数或者用类来包装线程对象。1.函数式:调用thread模块中的start_new_thread()函数来产生新线程。语法如下:thread.start_new_thread(function,args[,kwargs])参数说明:function - 线程函数。args - 传递给线程函数的参数,他必须是个tuple类型。kwargs - 可选参数。2....

weixin_39620662的博客 6910

python线程_Python线程详解

1. 线程基础1.1. 线程状态线程有5种状态,状态转换的过程如下图所示:1.2. 线程同步(锁)多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享数据时,可能存在数据不同步的问题。考虑这样一种情况:一个列表里所有元素都是0,线程"set"从后向前把所有元素改成1,而线程"print"负责从前往后读取列表并打印。那么,可能线程"set"开始改的时候,线程"print"便...

weixin_39772352的博客 118

python销毁线程_python线程销毁

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!如何温柔退出线程想要温柔退出线程,其实差不多就是一句废话了~要么运行完退出,要么设置标志位,时常检查标记位,该退出的就退出咯。 扩展《如何正确的终止正在运行的子线程》:https:www.cnblogs.comcreat... 《不要粗暴的销毁python线程》:http:xiaor...

weixin_39989384的博客 1994

python关闭线程_python怎么关闭线程

python关闭线程的方法:1、利用setDaemon(True)这个函数的特性关闭线程特性如下:主线程A中,创建了子线程B,并且在主线程A中调用了B.setDaemon(),这个的意思是,把主线程A设置为守护线程,这时候,要是主线程A执行结束了,就不管子线程B是否完成,一并和主线程A退出。2、使用ctypes强行杀掉线程import threadingimport timeimport insp...

weixin_39875754的博客 2122

【Python】线程和多线程的使用

线程是计算机中的基本执行单元。一个进程中可以拥有多个线程,这些线程可以并发地执行不同的任务。线程共享进程的资源,包括内存空间、文件和其他系统资源。通过使用多线程,程序可以在同一时间执行多个任务,提高系统的并发性和响应性。线程可以分为用户线程和内核线程。用户线程是由应用程序开发者创建和管理的,它们只在用户空间内运行,不需要内核的支持。而内核线程是由操作系统内核创建和管理的,它们在内核空间内运行,并通过系统调用来与操作系统进行交互。线程的创建和销毁是轻量级的操作,相比于进程的创建和销毁,更加高效。

黎明总是如期而至 2638
上一篇: 进程池和进程之间的通信
下一篇: mysql基础
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值