多线程—— Queue(储存进程结果)
文章目录
- 1.实现的功能
- 2.导入线程,队列的标准模块
- 3.定义一个被多线程调用的函数
- 4.定义一个多线程函数
- 5.完整代码
1.实现的功能
代码实现功能,将数据列表中的数据传入,使用四个线程处理,将结果保存在Queue中,线程执行完后,从Queue中获取存储的结果
2.导入线程,队列的标准模块
import threading
import time
from queue import Queue
3.定义一个被多线程调用的函数
函数的参数是一个列表l和一个队列q,函数的功能是,对列表的每个元素进行平方计算,将结果保存在队列中
def job(l,q): #定义线程需要干的工作(q是要存放计算结果的)for i in range (len(l)):l[i] = l[i]**2q.put(l) #多线程调用的函数不能用return返回值
4.定义一个多线程函数
在多线程函数中定义一个Queue,用来保存返回值,代替return,定义一个多线程列表,初始化一个多维数据列表,用来处理:
在多线程函数中定义四个线程,启动线程,将每个线程添加到多线程的列表中
def multithreading():q = Queue() #实例化Queue(),在q里面放入job的返回值来替代return这个功能threads = [] #把所有的线程放入threads列表中data = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]for i in range(4): #定义四个线程t = threading.Thread(target=job,args=(data[i],q)) ##Thread首字母要大写,被调用的job函数没有括号,只是一个索引,参数在后面t.start()threads.append(t) ##把每个线程append到线程列表中
分别join四个线程到主线程
for thread in threads:thread.join()
定义一个空的列表results,将四个线运行后保存在队列中的结果返回给空列表results
results = []
for _ in range(4):results.append(q.get()) #q.get()按顺序从q中拿出一个值
print(results)
5.完整代码
import threading
import time
from queue import Queuedef job(l,q):for i in range(len(l)):l[i] = l[i] ** 2q.put(l)def multithreading():q = Queue() #实例化Queue(),在q里面放入job的返回值来替代return这个功能threads = [] #把所有的线程放入threads列表中data = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]for i in range(4):t = threading.Thread(target=job,args=(data[i],q))t.start()threads.append(t)for thread in threads:thread.join()results = []for _ in range(4):results.append(q.get())print(results)
多线程—— Queue(储存进程结果)相关推荐
- python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)
今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...
- 多线程——线程与进程
多线程--线程与进程 文章目录 多线程--线程与进程 一.操作系统 二.进程 2.1 管理进程 2.2 进程的调度(并发&并行) 2.3 PCB 进程控制块 2.4 进程的独立性 三.多线程 ...
- Python多线程之守护进程
Python多线程之守护进程 让主进程不在等待子进程,只要主进程结束,不管子进程是否执行完成,子进程都要随着主进程结束而中止 # coding:utf-8 # 作者 : 王 # 职业 : 嘉心糖 # ...
- python守护多线程_Python守护进程(多线程开发)入门实例
这篇文章主要为大家详细介绍了Python守护进程(多线程开发)入门实例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...
- java 多线程 进程_Java多线程1:进程与线程概述
进程和线程 谈到多线程,就得先讲进程和线程的概念. 进程 进程可以理解为受操作系统管理的基本运行单元.360浏览器是一个进程.WPS也是一个进程,正在操作系统中运行的".exe"都 ...
- Java多线程1:进程与线程
进程和线程 讲线程和进程前,先讲下同步(Synchronous).异步(Asynchronous).并发(Concurrency).并行(Parallelism). 同步(Synchronous)和异 ...
- Java多线程1:进程与线程概述
进程和线程 谈到多线程,就得先讲进程和线程的概念. 进程 进程可以理解为受操作系统管理的基本运行单元.360浏览器是一个进程.WPS也是一个进程,正在操作系统中运行的".exe"都 ...
- 线程Queue,进程Queue和RabbitMQ区别
进程Queue用于父进程与子进程(或同一父进程中多个子进程)间数据传递 python自己的多个进程间交换数据或者与其他语言(如Java)进程queue就无能为力 RabbitMQ就是这样一个可以在不同 ...
- Java多线程之一:进程与线程
进程与线程 进程 进程是系统中正在运行的一个程序,程序一旦运行就是进程,也可以说进程是受操作系统管理的基本运行单元进. 平时我们打开的任务管理器中看到进程就是启动的程序,如浏览器的打开等等 线程 进程 ...
最新文章
- C#中的代理(delegate)[转载]
- linux 命令篇 -- 新建用户
- PP模块快速入门之功能简介(二)
- android studio 编译报错:download fastutil-7.2.0.jar
- Android开发返回拍摄的图片
- 4. 连续时间鞅(REN)
- 华为自带时钟天气下载_华为EMUI10的最大亮点是什么?
- Consumer搭建
- windows下cmd中命令操作
- 页面编程小技巧 —— 大屏图片自适应
- eclipse的控制台显示有问题,关闭Limit console output
- t3系统建账请到服务器端修改,用友T3标准版常见问题及处理方法(一)
- 计算机内存die,从内存时序的角度告诉你 三星B-DIE为何成为高端所用
- 老林学习笔记 :纯js 继承 闭包 与js实现继承原理 veu实现继承
- bzoj3991 [SDOI2015]寻宝游戏 set
- 数据结构最常用的排序算法一(冒泡、插入、选择)-Java实现
- 运维自动化工具Cobbler之——安装实践
- 机械手定位(带角度)的思路及3点计算旋转中心
- 在家控制公司的电脑 这两个软件你下载了吗
- Python写ROS话题
热门文章
- SpringMVC源码解读 - HandlerMapping - SimpleUrlHandlerMapping初始化
- pandas不显示index_pandas层级索引
- leetcode解题报告:Interleaving String
- 【问】如何应对关系型数据库中列的不断增加
- 云计算成了“晕技术”就对了
- opencv识别圆的代码(转)
- android图片混淆还原,图片混淆还原1.2版本
- 使用OGR2OGR将S57数据转为shp格式
- dojo uploader使用,ps.返回值
- 你最喜欢哪款游戏的界面风格,为什么?