进程
1.什么是进程?
进程是计算机中的程序与某数据聚合的一次运行活动,是系统进行资源分配和调度的基本单位
是操作系统结构的基础,在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代
面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述,进程是程序
的实体.
狭义定义:进程是正在运行的程序的实例
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元
2.并行与并发
并行:并行是指两者同时执行,比如赛跑,两个人都在不停往前跑;(资源够用.比如三个线程,四核的CPU)
并发:并发是指在资源有限的情况,两者交替轮流使用资源,比如一段(单核CPU资源)同时只能过一人,
A走一段后,让给B,B用完继续交给A,交替使用,目的是提高效率.
区别
并行:是从微观上,也就是在一个精确的时间片刻,有不同的程序执行,这就要求必须有多个处理器
并发:从宏观上,在时间段上可以看出是同时执行的,比如一个服务器同时处理多个session.
3.同步与异步
所谓的同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成这是一种可靠的任务序列.要么成功都成功,失败都失败,两个任务的状态可以保持一致
4.阻塞与非阻塞
阻塞和非阻塞这两个概念与程序(线程)等待消息通知(无所谓同步或者异步)时的状态有关.也就是说阻塞与非阻塞主要是程序(线程)等待消息通知时的状态角度来说的
5.在Python程序中的进程操作 (multiprocess)模块
仔细说来.multiprocess不是一个模块而是Python中的一个操作,管理进程的包,之所以叫multi是取自multiple的多功能的意思,在这个包几乎包含可进程有关的所有模块,由于提供的子模块非常多,为了方便大家归类记忆,大致分了四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享.
5.1进程的创建
import multiprocessing def tesk(arg) print(arg) for i in range(10) p = multiprocessing.Process(target=tesk,args=(i,)) p.start() if __name__ =="__main__
在linux与mac中可以用,也是官方写法,但是在windows里面稍有不同
import multiprocessing
def tesk(arg)
print(arg)
if __name__ =="__main__ #提前了
for i in range(10)
p = multiprocessing.Process(target=tesk,args=(i,))
p.start()