开启进程的方式
串行:一个完完整整的执行完再执行下一个
并发:看起来是同时运行的
并行:真正做到了同时运行多道技术(了解)
空间复用:共用一个内存条,每一个进程都有自己独立的内存空间,互不干扰,物理级别的隔离
空间复用:共用一个cpu
cpu切换(掌握)
io的时候,占用时间过长
切换现代计算机:现在的主机一般是多核,那么每个核都会利用多道技术
有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到 4个cpu的任意一个,具体由操作系统调度算法决定
并发:切换+保存状态开启子进程:把父进程的代码完整复制到一个新的内存空间去执行
开启子进程方式一
from multiprocessing import Process
import time
def task():
print('原来是钟硕啊')
time.sleep(3)
print('原来不是钟硕啊')
if __name__=='__main__':
p=Process(target=task)
p.start()
print('原来真的是钟硕啊')
开启子进程方式一之多进程
from multiprocessing import Process
import time
def task(x):
print(f'原来是钟硕啊{x}')
time.sleep(3)
print(f'原来不是钟硕啊{x}')
if __name__=='__main__':
p=Process(target=task,args=('lzs',)) ###以元组的形式存储
p2=Process(target=task,args=('sss'))
p.start()
print('原来真的是钟硕啊')
开启子进程方式二
from multiprocessing import Process
import time
def task(x):
print(f'原来是钟硕啊{x}')
time.sleep(3)
print(f'原来不是钟硕啊{x}')
if __name__=='__main__':
p=Process(target=task,args=('lzs',)) ###以元组的形式存储
p2=Process(target=task,args=('sss'))
p.start()
print('原来真的是钟硕啊')