multiprocessing 与 threading对比

这两个库都可以实现多线程操作,而且因为多线程的思路其实差不多,所以提供的API也比较类似,但是本地实际测试中,发现multiprocessing 对多核CPU的支持更好。

Demo

import multiprocessing as mp

from tqdm import tqdm

def listener(q):

pbar = tqdm(total = 1000)

while True:

if not q.empty():

k=q.get()

if k==1:

pbar.update(1)

else:

break

pbar.close()

def solve(q):

for i in range(100):

q.put(1)

if __name__ == '__main__':

manage=mp.Manager()

q=manage.Queue()

p=mp.Process(target=listener,args=(q,))

p.start()

processList=[]

for i in range(10):

t=mp.Process(target=solve,args=(q,))

processList.append(t)

t.start()

for i in processList:

t.join()

q.put(-1)

p.join()

实现主要是通过manage.Queue来实现。

为了测试方便,这里只是做了一个简单的分片(将1000条数据分为10片,每个线程处理1片,每片100条数据)。

在每个线程处理完成一条数据后,向queue中写入一条记录。 另外一个单独的线程用来抑制获取queue里面的数据,如果有新的数据相当于进度加1。

上面代码中的t.join()用来处理每一片的数据,在这些处理完成以后,再讲打印进度条的进程join进来,以保证可以完整打印整个进度条。

用python画派大星代码_Python多线程处理数据,并打印进度条相关推荐

  1. 用python画派大星_派大星的烦恼MISC

    挺有意思的杂项,python将二进制转图片的时候出现的图片不像二维码,想看题解的时候发现网上的大部分题解都是直接转发,更有意思了. 题目是派大星的烦恼,给了我们一张粉红图片,放进010editor里面 ...

  2. python莱布尼茨法计算π_python圆周率计算(带进度条)

    3.波尔文四次迭代式 这个公式由乔纳森·波尔文和彼得·波尔文于1985年发表的. bailey-borwein-plouffe算法 这个公式简称BBP公式,由David Bailey, Peter B ...

  3. python面向对象大段代码_python面向对象部分简单整理

    面向对象 VS 面向过程 面向过程 面向过程的程序设计的核心是过程(流水线式思维) 优点: 极大的降低了写程序的复杂度 缺点: 一整个过程(流水线)只能解决一个问题,若问题更改,代码几乎要全部重写. ...

  4. python面向对象大段代码_python粗谈面向对象(一)

    面向过程编程vs函数式编程 面向过程编程 以计算对象的元素个数为例. str_1 = 'abcdefg'count=0for i in str_1: #统计字符串元素个数 count += 1list ...

  5. python读文件代码-简单了解Python读取大文件代码实例

    这篇文章主要介绍了简单了解Python读取大文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通常对于大文件读取及处理,不可能直接加载到内 ...

  6. python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战

    python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战 笔者遇到的问题是这样的, 在做机器学习模型的时候,有的时候会使用相关性分析的方法来进行特征的筛选,去除冗余特征,降 ...

  7. python里进度条编程_Python实现控制台中的进度条

    相信很多人在写一些简单的Python脚本的时候都希望能够在程序运行的过程中实现进度条的功能以便查看程序运行的速度或者进度. 我之前一直想实现这样一个东西,也查看了许多博客但是都找不到一个完美的解决方案 ...

  8. Python 打印进度条

    Python 打印进度条 Python 打印字符串进度条 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2022/6/13 16:10 ...

  9. python读取大文件内容_Python模块linecache处理大文件

    linecache模块简介 Python处理大文件需要用到Linecache模块. linecache模块的作用是将文件内容读取到内存中,进行缓存,而不是每次都要从硬盘中读取,这样效率提高很多,又省去 ...

最新文章

  1. 干货 | 走进Node.js之启动过程剖析
  2. java String pool
  3. android logcat里面AndroidRuntime FATAL EXCEPTION: main这个是什么问题啊。
  4. ubuntu16.04終端補全忽略大小寫
  5. AUTOSAR从入门到精通100讲(七十九)-AUTOSAR基础篇之DTC
  6. JavaScript 字符串属性和方法
  7. redis 在 mac 下的安装与使用
  8. SpringMVC+Spring+Mybatis简单总结
  9. 奇异网盘点全球10大最荒诞的“时髦”事件
  10. 咸鱼的 Github 情报 | 一个支持边下边播、无版权限制和自动上传的BT离线下载程序...
  11. ie11浏览器For win7 x64 官方下载 V9600 官方版
  12. 自动化测试po模式是什么?自动化测试po分层如何实现?(附详细源码)
  13. Matlab图像处理笔记--图像修复
  14. qq邮箱 添加 gmail_将您的Gmail添加到Windows Live Mail
  15. ffmpeg 多视频 画中画
  16. RAR文件格式-笔记
  17. 最新的基于mvc毕业设计题目50例
  18. h5在twitter里登陆功能使用体验
  19. 安卓WebView的那些坑
  20. TCP三次握手四次挥手简介

热门文章

  1. 列注释_机器学习 Pandas 08:进阶 前09题 ( 带答案、注释 )
  2. jdb java_JAVA初学者的JDB 尝试
  3. mysql 漏洞 2015_Oracle MySQL Server远程安全漏洞(CVE-2015-0411)
  4. 进程异常行为-访问恶意下载源 解决方案_不要忽略服务器上的异常进程
  5. C++之指针探究(六):二级指针和指针数组
  6. jumbo 安装mysql,关于建立社工库的经验总结
  7. php pdo 存储过程的返回所有结果,PHP_PDO 调用存储过程,返回参数问题
  8. 计算机课堂听课情况记录表模板,【教师听课记录表】_教师听课评课记录表模板Word版...
  9. python虚函数_Python进阶话题杂谈(十三)纯虚函数与抽象基类
  10. oracle中制作副本,创建表的副本并在创建时为其提供约束