当前位置: 首页 > news >正文

关于Thread.start()后的困惑、imap

在for循环中,接着开thread,开完就start,当时有个困惑,就是比如开的一个thread的这个start执行完,但是这个for循环还没执行完,那程序会跑到for循环的后面逻辑吗?

比如下面13行for循环开始开第一个first_thread,并且first_thread也在start,然后这个start结束了,但是for循环还没结束 ,那么程序的逻辑会跑到19行吗?不会的,因为主进程还在for循环跑,线程跑完了,它应该就结束了,它不是主进程。所以会等着for循环执行完,才执行19行。从最后的执行结果就可以看出是等待for循环结束了才执行19行。

import time
from threading import Threaddef count(x, y):c = 0while c < 3:c += 1x += xy += yif __name__ == '__main__':counts = []for x in range(10):thread = Thread(target=count, args=(1, 1))time.sleep(3)print('one')counts.append(thread)thread.start()for thread in counts:print('two')thread.join()

另外join的方法:“This blocks the calling thread until the thread whose join() method is called terminates -- either normally or through an unhandled exception or until the optional timeout occurs.”,我们也看到,一旦线程执行完,其会自动终止,那么couts中记录的每个thread的变量是有一些属性,这些属性记录线程是否执行完,如下图:

所以我之前的困惑是,既然线程执行完,那么counts中记录的变量应该就失效了,对应的其变量调用join()方法应该也调用不了,这么理解其实是错误的。正确的是这些变量还有效,只不过其start()方法已经执行完了。

另外Pool.imap一旦定义了,这个方法会返回一个迭代器,不管这个迭代器有没有在后面使用,只有执行这句的下一句其imap已经开了进程在跑,其结果会写到内存中,需注意内存溢出。

from multiprocessing.pool import ThreadPool, Pooldef count(x):print('start---')return xif __name__ == '__main__':pool = Pool()ret_iter = pool.imap(count, [1])print('test')print('test---')for i in ret_iter:print(i)

从下图打的断点可以看出,其已经在开进程跑了,不过如果直接跑,不debug,那么可能打印顺序不对,因为开的进程跑的速度问题

参考:

  1. https://blog.csdn.net/qq_26460841/article/details/110420572

  1. https://blog.csdn.net/weixin_39765280/article/details/111629605?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-111629605-blog-110420572.pc_relevant_aa&spm=1001.2101.3001.4242.1&utm_relevant_index=3

相关文章:

关于Thread.start()后的困惑、imap

在for循环中&#xff0c;接着开thread&#xff0c;开完就start&#xff0c;当时有个困惑&#xff0c;就是比如开的一个thread的这个start执行完&#xff0c;但是这个for循环还没执行完&#xff0c;那程序会跑到for循环的后面逻辑吗&#xff1f;比如下面13行for循环开始开第一个…...

qml学习之qwidget与qml结合使用并调用信号槽交互

学习qml系列之一说明&#xff1a; 学习qml系列之qwiget和qml信号槽的交互使用&#xff0c;并在qwidget中显示qml界面 在qml中发送信号到qwidget里 在qwidget里发送信号给qml 在qwidget里面调用qml界面方式 方式一&#xff1a;使用QQuickView 这个是Qt5.0中提供的一个类&…...

【 华为OD机试 2023】 组装新的数组(C++ Java JavaScript Python)

文章目录 题目描述输入描述输出描述备注用例题目解析C++JavaScriptJavaPython题目描述 给你一个整数M和数组N,N中的元素为连续整数,要求根据N中的元素组装成新的数组R,组装规则: R中元素总和加起来等于MR中的元素可以从N中重复选取R中的元素最多只能有1个不在N中,且比N中…...

【洛谷 P2089】烤鸡(循环枚举)

烤鸡 题目背景 猪猪 Hanke 得到了一只鸡。 题目描述 猪猪 Hanke 特别喜欢吃烤鸡&#xff08;本是同畜牲&#xff0c;相煎何太急&#xff01;&#xff09;Hanke 吃鸡很特别&#xff0c;为什么特别呢&#xff1f;因为他有 101010 种配料&#xff08;芥末、孜然等&#xff09;…...

windows10安装ubantu双系统

windows10安装ubantu双系统 文章目录windows10安装ubantu双系统一、安装前准备1.前期说明2.制作U盘启动器3.设置硬盘分区相关4.设置给ubantu系统的硬盘大小&#xff0c;设置为未分配&#xff08;删除卷&#xff09;二、进行安装1.设置bios相关2.进入bios启动界面选择U盘安装3.进…...

【华为OD机试 2023】 人数最多的站点/小火车最多人时所在园区站点(C++ Java JavaScript Python)

文章目录 题目描述输入描述输出描述用例题目解析C++JavaScriptJavaPython励志做全网最全、解法最多的华为OD机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。每篇文章都有详细的结题步骤。有问题,随时解答。😁😁😁😁 目前为了造福广大…...

2024届暑期实习实录(阿里云大数据研发平台)

1. 项目介绍&#xff08;介绍一下你觉得有挑战的项目 &#xff08;1&#xff09;项目的痛点需求&#xff08;配置变更的痛点、你做的目的是什么&#xff1f;&#xff09; 思考方向&#xff1a;业务背景&#xff0c;用户需求&#xff1b;产品发展&#xff0c;产品现有局限问题…...

空口协议probe req和probe rsp 、auth req和auth rsp 、assoc req和assoc rsp讲解

我们经常可以看到抓到的报文主要有三种:probe req和probe rsp 、auth req和auth rsp 、assoc req和assoc rsp 。 建立联结的三个阶段 相互发现阶段:probe req和probe rsp probe是探测的意思 相互了解阶段:auth req和auth rsp auth是认证的缩写 建立关…...

vscode ssh一直卡在wget的解决方案

vscode ssh一直卡在wget的解决方案找到commit_id 在服务器下点进该目录 .vscode-server\bin 一般日期最新的那一串就是我们需要的commit_id下载vscode-server-linux-x64.tar https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable 将加粗部分替换…...

【Python学习笔记】第二十五节 Python MySQL

Python 连接到 MySQL 数据库有几种不同的连接方法&#xff0c;而且不是所有的方法都能与不同的操作系统很好地配合.MySQL connector/Python模块是Oracle支持的官方驱动&#xff0c;用于通过Python连接MySQL。该连接器完全是Python语言&#xff0c;而mysqlclient是用C语言编写的…...

折叠屏手机自带的屏幕表面层为什么不能自己撕?

计划入手折叠屏手机的小伙伴看过来&#xff0c;因为折叠屏手机外观的特殊形态&#xff0c;在日常使用中与普通直板手机屏幕的养护还是有着很大的不同&#xff0c;比如直板机入手后新机开箱撕膜这个操作&#xff0c;对于折叠屏手机来说&#xff0c;万万不可&#xff01;除此之外…...

20.hadoop系列之Yarn资源调度器

Yarn是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统&#xff0c;而MapReduce等运算程序则相当于运行于操作系统之上的应用程序 1.Yarn基础架构 Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Contai…...

206页16万字城市运行“一网统管”体系建设项目需求报告

本资料来源网络&#xff0c;知识分享&#xff0c;仅供个人学习&#xff0c;请勿商用。完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 第 一 章 应用场景示例 一.1 一卡通人员管理针对企业厂区、办公楼等场所人员出入频繁、安保问题多样化、管理环节复杂等现状&#…...

【JS】数组Array的使用

arr.length 3 通过设置数组长度&#xff0c;实现截取数组&#xff0c;改变原数组 map 循环遍历数组&#xff0c;不改变原数组&#xff0c;返回一个新的数组&#xff08;可用变量接收&#xff09; forEach 循环遍历数组&#xff0c;不改变原数组 join 把数组转化为字符串&…...

2023年,软件测试怎么样?

2022年因为各种不可抗力原因&#xff0c;大厂裁员&#xff0c;失业等等频频受到关注。 不解释&#xff0c;确实存在&#xff0c;各行各业都很难&#xff0c;但是&#xff0c;说软件测试行业不吃香&#xff0c;我还真不认同&#xff08;不是为培训机构说好话&#xff0c;大环境…...

【学习笔记】NOMURA Programming Competition 2020

C - Folia 不难想到自底向上确定树的形态。可能要多尝试一下 一开始想错了好几个地方&#xff0c;服了 假设某一层有XXX个节点&#xff0c;那么上一层可能有⌈X2⌉,⌈X2⌉1,...,X\lceil\frac{X}{2}\rceil,\lceil\frac{X}{2}\rceil1,...,X⌈2X​⌉,⌈2X​⌉1,...,X个节点&…...

iis下常用程序的伪静态规则列表(包括wordpress、thinkphp)

shopex discuz2.0 discuz2.5 discuz3.x 淘宝客 ecshop phpwind参照http://www.west.cn/faq/list.asp?unid797通过主机面板设置即可 wordpress设置&#xff1a; 第一步&#xff1a; 1.新建一个“chineseurl.php”文件&#xff1a;在里面写入以下代码上传到wordpress安装目录。…...

【Python语言基础】——Python Select From

Python语言基础——Python Select From 文章目录 Python语言基础——Python Select From一、Python Select From一、Python Select From 从表中选取 如需从 MySQL 中的表中进行选择,请使用 “SELECT” 语句: 实例 从表 “customers” 中选取所有记录,并显示结果: import m…...

数据增广真有那么神奇吗?

作者&#xff1a;皮皮雷 来源&#xff1a;投稿 编辑&#xff1a;学姐 论文题目 How Effective is Task-Agnostic Data Augmentation for Pretrained Transformers? 论文作者 S. Longpre, Y. Wang, and C. DuBois 论文发表于 2020 EMNLP findings 摘要 任务无关的数据增广…...

常用基础硬件知识 - 判断MOS管导通

目录1. 概述2. 判断MOS管的导通1. 概述 本文主要记录下基础的硬件知识&#xff0c;方便自己查阅。 2. 判断MOS管的导通 在产品硬件设计中&#xff0c;有时需要程序控制一些电源使能。 1.原理图已经标出了G极(gate)—栅极、S极(source)—源极、D极(drain)—漏极。 如果没有标…...

2023金三银四,测试人还能找到好工作吗?

嫌看文章麻烦的朋友点这里&#xff1a;2023最新软件测试行业变革细谈之我们该如何应对&#xff1f; 按照往年的惯例&#xff0c;春节后复工的 3 月、4 月是人员跳槽最频繁的时候&#xff0c;俗称“金三银四”。然而&#xff0c;市场大环境的影响&#xff0c;很多行业感受到了一…...

c++构造函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录一、构造函数1.构造函数的形式2.构造函数的调用时机3.委托构造函数4.复制构造函数二、析构函数本文仅为个人笔记 视频链接&#xff1a;https://www.bilibili.com/vid…...

redis 未授权访问漏洞

redis 未授权访问漏洞 目录 redis 未授权访问漏洞 漏洞描述 漏洞原因&#xff1a; 漏洞危害 漏洞复现&#xff1a; 漏洞复现 写webshell: 写计划任务&#xff1a;centos默认在/var/spool/cron 写ssh公钥实现ssh登录&#xff1a; 漏洞描述&#xff1a; Redis默认情况下…...

如何制作一个自定义的winpe?

winpe制作过程 获取相关资源 https://www.aliyundrive.com/s/MP58JbRsm76 文件存放位置 将压缩包存放在一个全英文目录下了,我这里选择了D:/winpe目录 解压文件 将三个压缩包进行解压到当前目录,如下图所示 创建一个mount目录,并在mount目录下分别创建boot和install目…...

QString转为2进制,8进制,10进制,16进制介绍

首先看段代码&#xff1a; bool ok false;QString ss "11";qDebug()<<"-----"<<ss.toInt(&ok,2)<<ss.toInt(&ok,10)<<ss.toInt(&ok,16)<<ss.toInt(&ok,8);结果&#xff1a; ----- 3 11 17 9 bool ok fal…...

2023-3-2-22:01随笔

好久没怎么更新技术分享博客了。去年从2022年1月3日到2023年1月份一直专注于ADAS的行车横向功能的研发与实车调试&#xff0c;2022年写了几篇项目经验的文章&#xff0c;像LQR算法&#xff08;虽然和同事&#xff08;志同道合&#xff0c;技术追求的民哥&#xff09;写出的工程…...

学习红客技术必备,手把手教你成为“安防第一人”

互联网时代已悄悄来临&#xff0c;作为新时代的人们&#xff0c;我们日常生活、工作、学习方面都需要借助互联网来完成&#xff0c;这样&#xff0c;又产生一种新的问题&#xff0c;那就是网络安全的问题&#xff0c;有时我们拼命加班好不容易完成的东西&#xff0c;在一夜之间…...

Git系列:常见指令辨析

Git系列&#xff1a;常见指令辨析指令辨析工作区、暂存区、版本库傻傻分不清楚&#xff1f;主干和分支的关系是什么&#xff1f;git fetch/merge/pull辨析日志查看时&#xff0c;git log与git reflog的区别是&#xff1f;git diff和status的区别是&#xff1f;相关资料本文小结…...

并发编程实战-构建自定义的同步工具

文章目录1.状态依赖性的管理1.1 示例&#xff1a;将前提条件的失败传递给调用者1.2 示例&#xff1a;通过轮询与休眠来实现简单的阻塞1.3 条件队列2.使用条件队列2.1 条件谓词2.2 过早唤醒2.3 丢失的信号2.4 通知2.5 示例&#xff1a;阀门类2.6 子类的安全问题2.7 入口协议与出…...

HBase集群部署

目录 一、前期准备 二、HBase下载 1. 查看HBase与hadoop版本对应关系 2. hbase的下载 3. 将hbase的tar包上传到linux 下 二、安装hbase 1. 解压 2. HBase的文件配置 主机名hadoop版本HBase版本hadoop安装路径Hbase安装路径HadoopMaster3.3.02.4.3/home/hadoop/softwareh…...

wordpress 分类页面打开400/湖南seo优化排名

MiniDao简介及特征 MiniDao是Jeecg自己的持久化解决方案&#xff0c;集成Hibernate实体维护和Mybaits SQL分离的两大优点。具有以下特征 lO/R mapping不用设置xml&#xff0c;零配置便于维护 l 不需要了解JDBC的知识 lSQL语句和java代码的分离 l 可以自动生成SQL语句 l接口…...

wordpress inaction/网站流量监控

linux修改bash目录How to test whether PATH has a specific directory in it in Bash on Linux?如何在Linux上的 Bash中测试PATH是否在其中具有特定目录&#xff1f; For example, how to test whether /usr/local/mytool/bin is in $PATH?例如&#xff0c;如何测试/usr/lo…...

wordpress ico文件下载/郑州百度网站快速优化

1.算法类书籍 记住结论对你没有太大意义&#xff0c;对你有价值的是 分析问题&#xff0c;解决问题的过程。 通过书籍&#xff0c;能得到的事物&#xff0c;按重要性排序&#xff1a; 1.1.分析问题解决问题的方法 1.2.分析问题解决问题的能力 1.3.经典问题的求解实现&#xff0…...

重庆做网站团队/营销咨询顾问

2019年7月9日&#xff0c;银保监会办公厅向各大银行、保险公司下发《中国银保监会办公厅关于推动供应链金融服务实体经济的指导意见》&#xff0c;供应链金融将迎来新一轮发展契机。 上述意见重点强调在开展供应链金融业务时须坚持四个原则&#xff0c;包括&#xff1a;重点支持…...

上海网站设计找哪家/搜索引擎营销分析

原文地址为&#xff1a; visual studio 2015 key vs2015密钥Visual Studio Professional 2015简体中文版&#xff08;专业版&#xff09; KEY&#xff1a;HMGNV-WCYXV-X7G9W-YCX63-B98R2 Visual Studio Enterprise 2015简体中文版&#xff08;企业版&#xff09; KEY&#xff1…...

赤壁网站设计/今天的三个新闻

并行集合 对于并行任务,与其相关紧密的就是对一些共享资源,数据结构的并行访问.经常要做的就是对一些队列进行加锁-解锁,然后执行类似插入,删除等等互斥操作. .NET4提供了一些封装好的支持并行操作数据容器,可以减少并行编程的复杂程度. 并行集合的命名空间:System.Collections…...