博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程间通讯:实现基于多进程的文件拷贝
阅读量:5331 次
发布时间:2019-06-14

本文共 804 字,大约阅读时间需要 2 分钟。

  • apply_async非阻塞式调度,apply阻塞式调度
  • 任何进程间资源都是独立的,所有一切都是不可以共享的。实现资源共享、进程间通讯比较常用的方式就是Queue。

  • 使用Queue可以解决Process创建的进程之间的通讯,但是无法解决进程池中进程之间通讯。

  • 进程池进程之间的通讯需要使用Manager.Queue()创建的队列。

# coding:utf-8from multiprocessing import Pool,Managerimport osdef copyfile(op,np,fn,queue):    fileread = open(op+'/'+fn)    filewrite = open(np+'/'+fn,'w')    # 当然如果是较大文件时循环读取    content = fileread.read()    filewrite.write(content)    fileread.close()    filewrite.close()    queue.put(fn)def main():    op = input('please input folder path:')    np = op+'-backups'    os.makedirs(np)    fns = os.listdir(op)    pool = Pool(5)    queue = Manager().Queue()    for name in fns:        pool.apply_async(copyfile,args=(op,np,name,queue))    num = 0    allNum = len(fns)    while num

 

转载于:https://www.cnblogs.com/yudis/articles/10048696.html

你可能感兴趣的文章
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
字符串类型的相互转换
查看>>
基础学习:C#中float的取值范围和精度
查看>>
web前端面试题2017
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
关于 linux 的 limit 的设置
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>