并发编程 之 进程 之 创建进程 (二)
今日内容:
进程: 资源分配单位.
进程的调度: 多个进程在操作系统控制下被 cpu执行, 去享用计算机资源.
先来先服务 算法
短作业优先 算法
时间片轮转 算法
多级反馈队列(包含上面三个的东西)
进程调度的过程是不能够随意被程序影响的. ps: 此时可以更改代码去配合 操作系统,
程序的并行与并发:
并行: 更快
并发: 宏观上同时执行
进程一共有三个状态: 就绪, 运行, 阻塞
同步, 异步 ps: 从宏观角度来看.
堵塞, 非堵塞
PID: Process ID 进程ID
ppid: parent process id 父进程id
父进程: 负责回收一些子进程的资源.
Python来完成多进程: multiproess 包
创建进程: multiprocessing.Process 模块
1, start() :不是运行一个程序, 而是调用操作系统的命令, 要开启创建的子进程.
在不同的操作系统 使用Python, 都是调用操作系统的命令来启动进程的, 且不同的操作系统操作Python都是不同的.
在windows 操作系统开启了一个子进程, 第一步相当于import了父进程所在的文件.
所以, 开启子进程的时候, 必须把 创建子进程对象和start() 写在 if __name__ == '__main__' 下面
在 linux和ios来说, 是完全复制所有的变量一份放到子进程里面, 所以 不用加 if __name__ == '__main__'
其他方法和属性:
2, 开启多个子进程:
利用for循环, 注意 虽然按顺序开启了,但是操作系统不一定会按照顺序来执行.
3, join(): 阻塞 进程对象, 直到子进程执行完毕之后再继续执行.
4, isalive() : 判断进程是否在执行任务.
5, terminate() 强制结束进程. 非阻塞 操作.
用面向对象的方式开启子进程:
重写 Process类, 并且重写 run方法.
进程同步:
待补充
进程池:
进程之间数据共享:
进程的同步控制