Python实现cpu密集型多线程

问题:

想通过以下代码实现多线程

class ThreadTest(threading.Thread):
 
    def __init__(self, num, *args, **kwargs):
        super(ThreadTest, self).__init__(*args, **kwargs)
        self.num = num
        print(num)
 
    def run(self):
        print(self.num)
        print(time.time())
 
if __name__ == "__main__":
    for i in range(3):
        ThreadTest(i).run()
 

但实际发现是串行计算。打印结果如下:
在这里插入图片描述

真正实现多线程:

import threading
import time

class ThreadTest(threading.Thread):
 
    def __init__(self, num, *args, **kwargs):
        super(ThreadTest, self).__init__(*args, **kwargs)
        self.num = num
#         print(num)
 
    def run(self):
        print(self.num)
        time.sleep(4)
        print(time.time())
        
if __name__ == "__main__":
    t0 = ThreadTest(0)
    t1 = ThreadTest(1)
    t0.start()
    t1.start()
    t0.join()
    t1.join()

总结

python如果单纯去调用run方法,实际上还是会串行计算,但如果使用start()方法,则结果显示中会以并发形式存在。但如果直接使用start()方法,如果主线程结束了,主线程不会等待子线程而会导致整个流程提前结束,所以需要一个阻塞主线程join的方法,但一般join其实是给最长的那个线程增加join就足够了

————————————————
版权声明:本文为CSDN博主「谷隐凡二」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37570494/article/details/124729426

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/139029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

postman连接数据库

参考:https://blog.csdn.net/qq_45572452/article/details/126620210 1、安装node.js 2、配置环境变量 3、安装xmysql连接数据库cmd窗口输入"npm install -g xmysql"后回车cmd窗口输入"xmysql"后回车,验证xmysql是否安装成功(下图代表安装成功)…

编程最佳外挂:批量数据分析与可视化,CodeGeeX工具箱一键完成

ChatGLM3代模型的Code Interpreter能力,本周已经在VSCode里的CodeGeeX插件产品中,以开发者工具箱的产品形态上线。 下图以VSCode插件为例:在CodeGeeX的侧边栏,和智能问答AskCodeGeeX并列出现的工具箱标签,用户登录后就…

区块链拆分

随着区块链技术的发展和普及,去中心化钱包逐渐成为数字货币领域的重要工具。去中心化钱包不仅具有高度安全性和隐私保护能力,还可以通过智能合约和开源技术实现定制化功能。本文将探讨去中心化钱包定制开发的基本概念、优势、流程和前景。 一、去中心化钱…

YOLOv8 营业执照提取 统一社会信用代码、企业名称

目录 背景 尝试一:整图OCR识别,然后正则匹配 尝试二:利用显著特征,直接传统方法定位,切出来识别 尝试三:yolov8训练一个统一社会信用代码、企业名称位置检测 ​编辑 效果 模型信息 项目 ​编辑 代…

(六)Spring源码解析:Spring AOP源码解析

一、AOP概念 Aspect:切面 给业务方法增加到功能,切面泛指交叉业务逻辑。上例中的事务处理、日志处理就可以理解为切面。常用的切面是通知(Advice)。实际就是对主业务逻辑的一种增强。 Pointcut:切入点 切入点指声明的…

springcloudalibaba入门详细使用教程

目录标题 一、简介二、SpringCloud Alibaba核心组件2-1、Nacos (配置中心与服务注册与发现)2-2、Sentinel (分布式流控)2-3、RocketMQ (消息队列)/RabbitMq/kafka2-4、Seata (分布式事务)2-5、Dubbo (RPC) 三、为什么大家看好 Spring Cloud Alibaba3-1、阿里巴巴强大的技术输出…

【每日一题】307. 区域和检索 - 数组可修改-2023.11.13

题目: 307. 区域和检索 - 数组可修改 给你一个数组 nums ,请你完成两类查询。 其中一类查询要求 更新 数组 nums 下标对应的值另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 &#xff0c…

智能井盖传感器具有什么效果?

智能井盖传感器与智慧城市之间有着密切的关联,两者之间属于相辅相成的状态,对于城市的现代化和城市生命线建设有助力作用。智能井盖传感器是其中一个重要的组成环节,它们帮助城市改变原有的生活和生态环境,为政府部门完善城市基础…

【机器学习】 朴素贝叶斯算法:原理、实例应用(文档分类预测)

1. 算法原理 1.1 朴素贝叶斯方法 朴素贝叶斯方法涉及一些概率论知识,我们先来复习一下。 联合概率:包含多个条件,并且所有的条件同时成立的概率,公式为: 条件概率:事件A在另一个事件B已经发生的前提下发…

工作十年+的测试应该具备什么能力?

大概是2014年的时候,我开始接触面试工作,就是从应聘者转为面试官,记得印象深刻的是面试了一位做了8年的测试。对方气场很足,嗯,毕竟那时的我还只是一个3、4年经验的小测试,相反,印象深刻的并不是…

Mysql基本知识

1.SQL分类 DDL【data definition language】 数据定义语言,用来维护存储数据的结构 代表指令: create, drop, alter DML【data manipulation language】 数据操纵语言,用来对数据进行操作 代表指令: insert,delete,up…

十四、W5100S/W5500+RP2040树莓派Pico<NetBIOS>

文章目录 1 前言2 简介2 .1 什么是NetBIOS?2.2 NetBIOS的优点2.3 NetBIOS工作原理2.4 NetBIOS应用场景 3 WIZnet以太网芯片4 NetBIOS网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 随着…

单片机定时器讲解和实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、计数器是什么?二、单片机定时器结构2.1***两个8位如何合成16位,16位如何分成两个8位***2.2 计数器的位数组合?2.3 定时功…

C# OpenCvSharp 基于直线检测的文本图像倾斜校正

效果 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp;namespace OpenCvSharp_基于直线检测的文本图像…

基于若依的ruoyi-nbcio流程管理系统增加读取节点扩展属性的方法

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 我们的在流程设计器里会根据需要再不同的节点增加扩展属性,如何动态读取这些扩展属性&#xff…

一文了解芯片测试项目和检测方法 -纳米软件

芯片检测是芯片设计、生产、制造成过程中的关键环节,检测芯片的质量、性能、功能等,以满足设计要求和市场需求,确保芯片可以长期稳定运行。芯片测试内容众多,检测方法多样,今天纳米软件将为您介绍芯片的检测项目都有哪…

下载并安装DevEco Studio 3.1,初尝鸿蒙编程

摘自华为官网 DevEco Studio 3.1配套支持HarmonyOS 3.1版本及以上的应用及服务开发,提供了代码智能编辑、低代码开发、双向预览等功能,以及轻量构建工具DevEco Hvigor 、本地模拟器,持续提升应用及服务开发效率。 下载 官网下载地址 HUAWEI…

取暖器/暖风机上架 亚马逊美国站UL1278测试标准要求

美国是一个对安全要求非常严格的国家,美国本土的所有电子产品生产企业早在很多年前就要求有相关检测。而随着亚马逊在全球商业的战略地位不断提高,境外的电子设备通过亚马逊不断涌入美国市场。“为保证消费者得安全,亚马逊始终强调带电得产品…

CSRF 漏洞验证

CSRF 漏洞验证 环境准备: dvwa csrf 为例 burpsuite 工具 dvwa靶场(CSRF) 方法一: 1.修改密码抓包 这里是为了理解先抓包查看修改密码时的数据 GET /dvwa_2.0.1/vulnerabilities/csrf/?password_newpassword&password_con…

粉够荣获淘宝联盟区域理事会常务理事,携手共铸淘客新生态

淘宝联盟区域理事会于2021年成立,首届成立成都、广州、武汉,服务近2000个领军淘宝客企业,作为区域生态与官方交流重要枢纽,理事会举办近百场交流分享会,带动淘客跨域跨业态交流成长。 2023年9月7日第二届淘宝联盟理事…