python 多线程内子线程结束后执行主线程
python 多线程内子线程结束后执行主线程
今天写case时发现一个场景,请求助力接口后需要统计被助力用户的助力次数
助力接口用线程并发的方式进行,代码如下
def test_case_08(self):"""多用户并发助力"""t1 = [threading.Thread(target=PreheatMethod().help, args=(i, self.A, 1)) for i in self.uid_list][i.start() for i in t1]response = PreheatMethod().init(self.A)print(f"当前用户被助力次数 :{response['data']['userInfo']['helpedCount']}次")
线程这里采用列表推导式进行uid列表循环制作线程
t1 = [threading.Thread(target=PreheatMethod().help, args=(i, self.A, 1)) for i in self.uid_list]
发现的问题就是,子线程进行第一个线程i.start()时就会直接执行下面的PreheatMethod().init(self.A)方法这样就没发起到统计的作用了
解决方法:添加[j.join() for j in t1]进行子线程阻塞
def test_case_08(self):"""多用户并发助力"""t1 = [threading.Thread(target=PreheatMethod().help, args=(i, self.A, 1)) for i in self.uid_list][i.start() for i in t1][j.join() for j in t1]response = PreheatMethod().init(self.A)print(f"当前用户被助力次数 :{response['data']['userInfo']['helpedCount']}次")
主程序将一直等待子程序全部运行完成才结束
python 多线程内子线程结束后执行主线程相关推荐
- python如何在所有线程结束后执行最后操作_Python线程的生命周期
在线程的生命周期中,从创建到执行以及最终终止,线程通常处于四种状态之一:开始态.可调度状态.阻塞态和终止态. 父线程和子线程 当一个新的进程或程序开始运行时,它将以一个线程开始,这个线程被称为主线程. ...
- pthread_detach():主线程与子线程分离,子线程结束后,资源自动回收
https://github.com/Rtoax/test/tree/master/c/glibc/pthread 目录 前言 pthread_join() pthread_detach() 前言 1 ...
- python 多线程 setdaemon_python使用Thread的setDaemon启动后台线程教程
多线程编程当中, 线程的存在形态比较抽象. 通过前台线程后台线程, 可以有效理解线程运行顺序.(复杂的多线程程序可以通过设置线程优先级实现) 后台线程与前台线程的直接区别是, 1)setDaemon( ...
- 线程池如何保证所有子线程运行完再执行主线程
Java主线程等待所有子线程执行完毕在执行,其实在我们的工作中经常的用到,比如说主线程要返回一个响应用户的值,但这个值得赋值过程是由过个子线程来完成的(模拟一个实际开发的情景),所以主线程必须等待子线 ...
- python多线程文件的数据续传_python38 1.线程一堆队列 2.事件Event 3.协程 4.断点续传...
复习 1.GIL锁 2.如何避免GIL锁给程序带来的效率影响 3.与自定义锁的区别 4. 线程池进程池 5 同步 异步 6.异步回调 1.GIL锁 全局解释器锁, 用来锁住解释器的互斥锁 为啥 ...
- Python 多线程、守护进程、同时运行最大线程数、锁、线程阻塞(线程暂停和继续)
python 多线程的使用笔记 1.多线程的基本用法 (1)简单任务多线程的开启方式 from threading import Thread import timedef target(name, ...
- c++ 等待子线程结束_?进程、线程、以及它们之间的区别与联系
一.进程简介 1.1 进程概念的引入 计算机中,CPU是最宝贵的资源,为了提高CPU的利用率,引入了多道程序设计的概念.当内存中多个程序存在时,如果不对人们熟悉的"程序"的概念加以 ...
- python多线程调度_python并发编程之进程、线程、协程的调度原理(六)
进程.线程和协程的调度和运行原理总结. 系列文章 进程.线程的调度策略介绍 linux中的进程主要有三种调度策略: 优先级调度:将进程分为普通进程和实时进程: 先进先出(队列)调度:实时进程先创建的先 ...
- python编程(你的电脑能够执行多少线程和进程)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 对python比较熟悉的同学,相信都写过多线程和多进程的代码.可是,不知道大家有没有这么一个想法 ...
- c++ 等待子线程结束_进程和线程
1.进程的基本概念 进程简单说就是运行中的可执行文件.代码经过编译后生成二进制可执行文件,当运行该可执行文件时,代码被装载到内存中,然后CPU会执行程序中的指令. 有关进程调度,例如进程A,进程B,C ...
最新文章
- Python中的张量分解
- 同步一张表、复制过滤设置
- Field creation not permitted in partner development mode
- java 读取 image_如何在java读取sql里头读取image格式的数据转换成图片格式
- Oracle run leve,UNIX自动启动oracle
- PostgreSQL存储引擎源码分析五(原创,不断更新)
- php wmi,wmi与vbs
- linux shell tr,shell脚本 之 tee tr
- webdriver原理_(最新版)如何正确移除 Pyppeteer 中的window.navigator.webdriver
- vs2019写c语言用不了scanf,VS2010里编C程式不能用scanf()吗?
- 安卓和php开发融云聊天室,聊天室
- Java通过JNI/JNA加载dll库文件调用C接口,出现“java.lang.UnsatisfiedLinkError:包名.类.方法(参数)”问题
- 基于Python的指数基金量化投资 - 指数投资技巧(一)定期定额
- JS实现弹窗效果,超简单哦
- 100天精通Andriod逆向——第4天:各种抓包工具学习
- 函数的 smoothness 和 convexity
- #!/usr/bin/env node 到底是什么
- Polygon zkEVM的pil-stark Fibonacci状态机初体验
- 2023最新最全git安装教程,保姆级手把手式安装!!!
- Android端一对一视频聊天系统功能实现方式