多任务-进程

进程和程序

进程:正在执行的程序

程序:没有执行的代码,是一个静态的

进程的状态


使用进程实现多任务

multiprocessing模块就是跨平台的多进程模块,提供了一个Process类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另外的事情。

线程和进程之间的对比

进程:能够完成多任务,一台电脑上可以同时运行多个QQ

线程:能够完成多任务,一个QQ中的多个聊天窗口

根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位


进程间通信-Queue

Queue-队列 先进先出

队列间简单通信

模拟下载数据,与数据处理

多进程共享全局变量

共享全局变量不适用于多进程编程

进程池

当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态生成多个进程,但是如果是上百甚至上千个目标,手动的去创建的进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法

from multiprocessing import Pool

import os,time,random

def worker(msg):

    t_start = time.time()

    print('%s开始执行,进程号为%d'%(msg,os.getpid()))


    time.sleep(random.random()*2)

    t_stop = time.time()

    print(msg,"执行完成,耗时%0.2f"%(t_stop-t_start))

def demo():

    pass

if __name__ == '__main__':

    po = Pool(3)        # 定义一个进程池

    for i in range(0,10):

        po.apply_async(worker,(i,))   


    print("--start--")

    po.close()     


    po.join()     

    print("--end--")

进程池间的进程通信

多任务文件夹复制

1 获取用户要copy的文件夹的名次

2 创建一个新的文件夹

3 获取文件夹的所有的待copy的文件名字

4 创建进程池

5 向进程池中添加拷贝任务

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、总体内容 1.1、进程、程序的概念 1.2、使用 Process 完成多进程- multiprocessing...
    IIronMan阅读 786评论 0 1
  • 1.进程 1.1多线程的引入 现实生活中 有很多的场景中的事情是同时进行的,比如开车的时候手和脚共同来驾驶汽车,再...
    TENG书阅读 593评论 0 0
  • 一、进程及状态 1. 进程 程序:比如电脑安装了很多程序,又比如我们编写一个xxx.py程序,它们静静的保存在硬盘...
    潇潇雨歇_安然阅读 175评论 0 1
  • 进程是资源分配的基本单元,进程包括资源和数据。而线程只有数据。他也能完成多任务。 使用方法:导入multiproc...
    咏远瑞智阅读 257评论 0 0
  • 天气越来越热啦,北京这几天都是三十七八度的高温。与其在骄阳下融化,窝在沙发上,读书,纳凉更加惬意。 最近读到了这些...
    芥小茉ne阅读 286评论 0 0