文章目录

  • 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(储存进程结果)相关推荐

  1. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

  2. 多线程——线程与进程

    多线程--线程与进程 文章目录 多线程--线程与进程 一.操作系统 二.进程 2.1 管理进程 2.2 进程的调度(并发&并行) 2.3 PCB 进程控制块 2.4 进程的独立性 三.多线程 ...

  3. Python多线程之守护进程

    Python多线程之守护进程 让主进程不在等待子进程,只要主进程结束,不管子进程是否执行完成,子进程都要随着主进程结束而中止 # coding:utf-8 # 作者 : 王 # 职业 : 嘉心糖 # ...

  4. python守护多线程_Python守护进程(多线程开发)入门实例

    这篇文章主要为大家详细介绍了Python守护进程(多线程开发)入门实例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

  5. java 多线程 进程_Java多线程1:进程与线程概述

    进程和线程 谈到多线程,就得先讲进程和线程的概念. 进程 进程可以理解为受操作系统管理的基本运行单元.360浏览器是一个进程.WPS也是一个进程,正在操作系统中运行的".exe"都 ...

  6. Java多线程1:进程与线程

    进程和线程 讲线程和进程前,先讲下同步(Synchronous).异步(Asynchronous).并发(Concurrency).并行(Parallelism). 同步(Synchronous)和异 ...

  7. Java多线程1:进程与线程概述

    进程和线程 谈到多线程,就得先讲进程和线程的概念. 进程 进程可以理解为受操作系统管理的基本运行单元.360浏览器是一个进程.WPS也是一个进程,正在操作系统中运行的".exe"都 ...

  8. 线程Queue,进程Queue和RabbitMQ区别

    进程Queue用于父进程与子进程(或同一父进程中多个子进程)间数据传递 python自己的多个进程间交换数据或者与其他语言(如Java)进程queue就无能为力 RabbitMQ就是这样一个可以在不同 ...

  9. Java多线程之一:进程与线程

    进程与线程 进程 进程是系统中正在运行的一个程序,程序一旦运行就是进程,也可以说进程是受操作系统管理的基本运行单元进. 平时我们打开的任务管理器中看到进程就是启动的程序,如浏览器的打开等等 线程 进程 ...

最新文章

  1. C#中的代理(delegate)[转载]
  2. linux 命令篇 -- 新建用户
  3. PP模块快速入门之功能简介(二)
  4. android studio 编译报错:download fastutil-7.2.0.jar
  5. Android开发返回拍摄的图片
  6. 4. 连续时间鞅(REN)
  7. 华为自带时钟天气下载_华为EMUI10的最大亮点是什么?
  8. Consumer搭建
  9. windows下cmd中命令操作
  10. 页面编程小技巧 —— 大屏图片自适应
  11. eclipse的控制台显示有问题,关闭Limit console output
  12. t3系统建账请到服务器端修改,用友T3标准版常见问题及处理方法(一)
  13. 计算机内存die,从内存时序的角度告诉你 三星B-DIE为何成为高端所用
  14. 老林学习笔记 :纯js 继承 闭包 与js实现继承原理 veu实现继承
  15. bzoj3991 [SDOI2015]寻宝游戏 set
  16. 数据结构最常用的排序算法一(冒泡、插入、选择)-Java实现
  17. 运维自动化工具Cobbler之——安装实践
  18. 机械手定位(带角度)的思路及3点计算旋转中心
  19. 在家控制公司的电脑 这两个软件你下载了吗
  20. Python写ROS话题

热门文章

  1. SpringMVC源码解读 - HandlerMapping - SimpleUrlHandlerMapping初始化
  2. pandas不显示index_pandas层级索引
  3. leetcode解题报告:Interleaving String
  4. 【问】如何应对关系型数据库中列的不断增加
  5. 云计算成了“晕技术”就对了
  6. opencv识别圆的代码(转)
  7. android图片混淆还原,图片混淆还原1.2版本
  8. 使用OGR2OGR将S57数据转为shp格式
  9. dojo uploader使用,ps.返回值
  10. 你最喜欢哪款游戏的界面风格,为什么?