操作系统是用来协调管理计算机硬件和软件资源的系统程序 他位于硬件和应用程序之间
操作系统是 软件的上一级
操作系统是承载这些软件的平台
多任务
多任务就是同一时刻 进行 多个进行的事情
例如聊qq的同时 还在听音乐
而电脑在执行多任务时实际上 只是cpu在多个应用程序之间高速切换的结果
所以当电脑卡顿的时候就是因为电脑在切换时 吃力切换不过来了
在操作系统中 运行起来的应用程序就称之为进程 反之 如果这个程序不在执行中那么他就是程序而不是进程
进程也就是程序的一次执行 也就是说当你执行这个程序第二次又执行了这个程序后 这是两个程序 互不相干
进程是系统进行资源分配和调度的基本单位
两个进程之间没有实质性的关系
import time,os
from multiprocessing import Process #导入进程类
xiaogou = 10
def dance():
global xiaogou
xiaogou += 20
print('小狗',xiaogou)
for i in range(3):
print('跳舞', i,os.getpid(),'父进程',os.getppid()) #想使用getpid函数 必须在调用包内加入os才可使用
time.sleep(0.8) #pid为子进程ppid为父进程
def sing():
global xiaogou
xiaogou += 30
print('小狗', xiaogou)
for i in range(3):
print('唱歌', i,os.getpid(),'父进程',os.getppid()) #
time.sleep(0.8)
if __name__ == '__main__':
print('主进程',os.getpid(),'主进程')
p1 = Process(target=dance) #创建进程,target指向的值为函数
p2 = Process(target=sing)
p1.start() #启动进程
p2.start()
进程池
from multiprocessing import Pool #进程池
import os,time
def worker(name):
start = time.time()
print(name,'开始')
time.sleep(2)
end = time.time()
print(name,'执行了',end-start)
if __name__ == '__main__':
pool = Pool(4)
for i in range(6):
pool.apply_async(worker,args=(i+1,)) #把进程放到进程池内
pool.close() #close 关闭,不允许在有新的进程进来
pool.join() #主进程阻塞等待子进程结束
print('结束')
Pool限制几个进程进程池内就只能存在几个进程