Process多进程
进程的概念
程序是没有运行的代码,静态的;
进程是运行起来的程序,进程是一个程序运行起来之后和资源的总称;
程序只有一个,但同一份程序可以有多个进程;例如,电脑上多开QQ;
程序和进程的区别在于有没有资源,进程有资源而程序没有资源,进程是一个资源分配的基本单元;
程序在没运行的时候没有资源,没有显卡,没有网卡,等等;双击运行后有摄像头,有网速等等,就叫做进程;
进程的状态
进程状态图
image
就绪态:运行的条件都已经慢去,正在等在cpu执行
执行态:cpu正在执行其功能
等待态:等待某些条件满足,例如一个程序sleep了,此时就处于等待态
使用Process完成多任务
进程的使用步骤和线程的使用步骤基本一致;
进程的使用步骤:
导入multiprocessing;
编写多任务所所需要的函数;
创建multiprocessing.Process类的实例对象并传入函数引用;
调用实例对象的start方法,创建子线程。
进程使用步骤图示:
进程使用步骤代码
import time
import multiprocessing
def sing():
while True:
print("-----sing-----")
time.sleep(1)
def dance():
while True:
print("-----dance-----")
time.sleep(1)
def main():
p1 = multiprocessing.Process(target=sing)
p2 = multiprocessing.Process(target=dance)
p1.start()
p2.start()
if name == “main”:
main()
运行结果:
-----sing-----
-----dance-----
-----sing-----
-----dance-----
-----sing-----
-----dance-----
…
进程:
主进程有什么,子进程就会有什么资源;
线程能创建多任务,进程也能创建多任务,但进程耗费的资源比较大;
所以运行的进程数,不一定越多越好