• python 进程


    进程的介绍:

    在python程序中,想要实现多任务可以使用进程来完成,进程是实现多任务的一种方式

    进程的概念

    一个正在运行的软件或者程序就是一个进程,他是操作系统进行资源分配的基本单位,也就是说每启动一个进行进程,操作系统机会为其分配一定的运行资源保证进程的运

    多进程的使用

    1.导入进程包

    from multiprocess import Process

    2.Process进程类的说明

    Process(group,target,name,args,kwargs)

    .group:指定进程组,目前只能使用None

    .target:执行的目标文件名

    .name:进程名字

    .args:以元祖方式给执行任务传递参数

    .kwargs:以字典的方式给执行任务进行传递参数

    Process创建的实例对象的常用方法

    .start()进程的启动(创建子进程)

    .join()等待子进程结束

    .terminate()不管任务是否完成,立即终止子进程

    多进程完成任务的实例代码

    #coding:utf-8                                              
      2 #1.导入进程包
      3 import multiprocessing
      4 import time
      5 #创建目标函数
      6 def process1():
      7     for i in range(3):
      8         print("吃饭")
      9         time.sleep(0.2)
     10 
     11 def process2():
     12     for i in range(3):
     13         print("睡觉")
     14         time.sleep(0.2)
     15 #创建子进程        
     16 process_1 = multiprocessing.Process(target = process1)
     17 #3.启动进程执行的任务
     18 process_1.start()
     19 
     20 #主进程执行process2
     21 process2()
     22 #运行结果
    睡觉
    吃饭
    睡觉
    吃饭
    睡觉
    吃饭

    进程的注意点

    .进程之间不共享全局变量

    实验代码

    #coding:utf-8                                              
      2 #进程的注意点
      3 #1.进程之间不共享全局变量
      4 #2.主进程会等待所有子进程结束后再结束
      5 from multiprocessing import Process
      6 import time
      7 g_list = list()
      8         
      9 def add_date():
     10     for i in range(3):
     11         print("add",i)
     12         #因为列表是可变类型,可以在原有的内存的基础上修改数
        据,所以不需要添加global关键字
     13         g_list.append(i)
     14         time.sleep(0.2)
     15 
     16 def read_date():
     17     print(g_list)
     18 
     19 add_process = Process(target = add_date)
     20 read_process = Process(target = read_date)
     21 #在windows系统中需要用if __name__ == "__main__"来进>    行判断书否为主模块,否则则会出错,因为糊一直递归创建子进行进
        程,从而程序报错
     22 #直接执行的模块就是主模块,那么直接执行的模块里面就应该添加
        判断是否为主模块的代码
     23 """"
     24 if __name__ == "__main__":
     25     add_process = Process(target = add_date)
     26     read_process = Process(target = read_date)
     27 """
     28 add_process.start()
     29 #等待上一个进程结束后在开始下一个进程
     30 add_process.join()
     31 read_process.start()
     32 #创建子进程是对主进程的资源的拷贝,子进程其实就是主进程的一
        个副本
     33 print("主进程的群居变量:",g_list)
     34 #只有子进程的全局变量改变了,主进程的全局变量并没有发生改变
    运行结果
    add 0
    add 1
    add 2
    主进程的群居变量: []
    []
                                                
    笨鸟先飞
  • 相关阅读:
    js 根据屏幕大小调用不同的css文件
    centos U盘安装查看名称
    gmail只能收,不能发解决
    pytty秘钥登陆
    GCP 免密钥登陆
    iredmail安装资料整理
    centos修改本地hostname(主机名)
    chmod 774
    centos 环境部署
    epel更新源
  • 原文地址:https://www.cnblogs.com/zoutingrong/p/13702710.html
Copyright © 2020-2023  润新知