一:进程中的其他知识
进程隔离是为了保护操作系统中进程互不干扰而设计的一组不同硬件和软件的技术
这个技术是为了避免进程A写入进程B的情况发生。进程的隔离实现,使用了虚拟地址空间。进程A的虚拟地址和进程B的进程隔离的安全性通过禁止进程间内存的访问可以方便实现
from multiprocessing import Process
n = 100
def work():
global n
n = 0
print('子进程内:‘,n)
if __name__ == '__main__':
p = Process(target=work)
p.start()
print('主进程内:',n)
守护进程
会随着主进程的结束而结束,通俗点的说类似于古代的君王和服侍君王的太监,妃子等一干人,只要君王死了其他人都得陪葬。
主进程创建守护进程
其一:守护进程会在主进程代码执行结束后终止
其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError:daemonic process are not allowed to have children
注意:进程之间是相互独立的,主进程代码运行结束,守护进程随即终止
impo‘)rt os
import time
from multiprocessing import Process
class Myprocess(Process):
def __init__(self,person):
super().__init__()
self.person = person
def run(self):
print(os.getpid(),self.name)
print('%s正在聊天‘%self.person)
p = Myprocess('敏’)
p.daemon=True # 一定要在p.start()前设置,设置p为守护进程,禁止p创建子进程,并且父进程代码执行结束,p即终止运行
p.start()
time.sleep(10). # 在sleep时查看进程id对应的进程ps-eflgrep id
print('主‘)
**
**
from multiprocessing import Process
def foo():
print(123)
time.sleep(1)
print('end123')
def bar