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
主进程的群居变量: []
[]
                                            
笨鸟先飞
原文地址:https://www.cnblogs.com/zoutingrong/p/13702710.html