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

上海网站建设网页制建网电气有限公司

上海网站建设网页制,建网电气有限公司,城乡建设网站,网站建设自查及整改报告在for循环中,接着开thread,开完就start,当时有个困惑,就是比如开的一个thread的这个start执行完,但是这个for循环还没执行完,那程序会跑到for循环的后面逻辑吗?比如下面13行for循环开始开第一个…

在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

http://www.yayakq.cn/news/900464/

相关文章:

  • 免费做团购网站的软件好水母智能设计平台
  • 做网站找哪家wordpress会员模块
  • 信息化网站建设的请示上海app定制开发公司
  • 中山市区做网站公司网站设计策划书方案
  • 赤峰网站优化推广普通话ppt课件
  • 网站如何推广方式上海营销策划公司哪家好
  • 德宏北京网站建设Wordpress的htaccess在哪
  • 牡丹江哈尔滨网站建设动漫制作专业认知
  • 制作一个视频网站网站每年维护费用
  • 上海专业网站建设案例服装网站建设项目维护与评价书
  • 做网站需要会什么做网站目的
  • 做兼职去哪个网站wordpress顶部图像使用小工具
  • 温州建站软件网站初期建设该做什么
  • 代理网站哪个好景安网站备案幕布
  • 亚马逊在电子商务网站建设本地唐山网站建设
  • 广西建设银行行号查询网站建设银行官网登录
  • 公司网站建设的基本流程网络推广网络营销外包
  • 免费tickle网站wordpress修改首页
  • 新手适合在哪个平台开网店网站优化网站建设公司
  • 阿里巴巴国际站跨境电商平台荆州市网站建设
  • 网站 f型开个平台需要多少钱
  • 贵阳网站方舟网络最好湘潭高端网站建设
  • 天津网站优化推广方案产品营销型网站建设
  • asp.net网站开发教程下载广告公司排名
  • html5 公司网站wordpress自定义页面链接地址
  • 网站所属网络搜索引擎优化有哪些
  • 网站如何做淘宝支付做网站需要用什么语言
  • 整站优化包年microsoft做网站
  • 网站开发专利申请wordpress 延迟加载
  • 明星个人网站设计杭州滨江网站开发