进程

it2022-05-05  140

1、进程的概念

     什么是进程—>CPU在同一时刻只能处理一个任务,只是因为cpu执行速度很快。 cpu在各个任务之间来回的进行切换。 进程的概念:正在进行的一个过程或者说一个任务,而负责执行任务的则是CPU,进程本身是 一个抽象的概念,即进程就是一个过程、一个任务。 CPU描述的是一个程序的执行过程. 进程之间是如何做到并发的:CPU在各个任务之间来回的进行切换,并在切换的过程当中保存当前 进程的执行状态(保存蛋糕的执行过程)。 进程与程序的区别:程序相当于菜谱,而进程相当于做菜的整个过程。 

2、并行与并发的区别

     无论是并行还是并发,在用户看来都是同时运行的,不管是进程还是线程,都只是一个任务而已, 真正干活的是CPU,CPU来做这些任务,而一个cpu(单核)同一时刻只能执行一个任务。 并行:多个任务同时运行,只有具备多个cpu才能实现并行,含有几个cpu,也就意味着在同一时刻可以执行几个任务。 并发:是伪并行,即看起来是同时运行的,实际上是单个CPU在多道程序之间来回的进行切换

3、父进程和子进程之间的关系

  子进程创建后,父进程和子进程有各自不同的地址空间,多道技术要求物理层面实现进程之间内存的 隔离,任何一个进程在其地址空间的修改都不会影响到另外一个进程。 注意:子进程和父进程之间是可以有只读的共享的内存区域的。 进程与进程之间数据(资源)是隔离的,两个进程之间可以基于管道这种方式进行通信。在Unix当中,是含有进程层次的概念的,但是在windows当中,是没有进程层次的概念的,所有的进程都是地位相同的。 在Linux当中,每启动一个命令,都会启动一个进程。

创建一个进程:

from multiprocessing import Process process =Process(target=test,args=(*,))#test:表示目标函数,args表示目标函数的参数 process.start()

 

开启子进程方法有两种:

方法一:

# 方式一: from multiprocessing import Process import time def task(name): print('%s is running' %name) time.sleep(3) print('%s is done' %name) if __name__ == '__main__': # Process(target=task,kwargs={'name':'子进程1'}) p=Process(target=task,args=('子进程1',)) p.start() #仅仅只是给操作系统发送了一个信号 print('')

方法二:

from multiprocessing import Process import time class MyProcess(Process): def __init__(self,name): super().__init__() self.name=name def run(self): print('%s is running' %self.name) time.sleep(3) print('%s is done' %self.name) if __name__ == '__main__': p=MyProcess('子进程1') p.start() print('')

第二种相对于第一种是通过类的方式进行调用。

转载于:https://www.cnblogs.com/z18271397173/p/9221589.html

相关资源:Android应用程序进程管理

最新回复(0)