进程

本文探讨了进程隔离的重要性,介绍了守护进程的概念及其与主进程的关系。接着,阐述了进程互斥锁在处理共享资源时的作用,以多进程抢票实例说明加锁对数据安全的保障。最后,重点讨论了进程间通信,特别是利用队列实现进程间数据安全传输的基本用法和应用。
摘要由CSDN通过智能技术生成

一:进程中的其他知识

进程隔离是为了保护操作系统中进程互不干扰而设计的一组不同硬件和软件的技术
这个技术是为了避免进程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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值