进程简介
-
进程(任务):
-
在计算机中,其实进程就是一个任务。
-
在操作系统中,进程是程序执行和资源分配的基本单元。
-
-
单核CPU实现多任务
-
只是将CPU的时间快速的切换和分配到不同的任务上。
-
主频足够高,切换足够快,人的肉眼无法分辨而已。
-
-
多核CPU实现多任务
-
如果任务的数量不超过CPU的核心数,完全可以实现一个核心只做一个任务。
-
在操作系统中几乎是不可能的,任务量往往远远大于核心数。
-
同样采用轮训的方式,轮流执行不同的任务,只是做任务的‘人‘有多个而已。
-
进程管理
-
简单示例:
from multiprocessing import Process import os import time def do_some_thing(): print(‘子进程开始:‘, os.getpid()) print(‘父进程进程:‘, os.getppid()) time.sleep(1) print(‘子进程结束‘) if name == ‘main‘: # 获取当前进程号 print(‘主进程‘, os.getpid()) # 创建一个进程,指定任务(通过函数) # 参数介绍: # target:指定任务,一个函数 # name:进程名 # args和kwargs:传递给子进程任务函数的参数 p = Process(target=do_some_thing) # 当主进程结束后子进程任然在运行,这样的进程叫僵尸进程(有风险) # 设置:当主进程结束时,结束子进程 p.daemon = True # 启动进程 p.start() # 等待主进程结束,在结束主进程,可以指定等待时间 p.join() # 终止子进程 # p.terminate() print(‘主进程结束‘)
- 启动子进程,会将父进程所在的文件再加载一次,将会无线循环下去,造成错误。因此,通过将执行的代码放到下面的结构中