进程与线程的相关操作
|
内容概要 |
- 僵尸进程与孤儿进程
- 守护进程
- 互斥锁(重点)
- 消息队列
- 实现进程间的数据交互(ipc机制)
- 生产者消费者模型
- 线程理论
|
内容详情 |
| 一、进程补充 |
| 僵尸进程与孤儿进程 |
僵尸进程
主进程代码运行完成之后不会直接结束,而是要等待所有子进程运行完回收他们的资源之后才能结束。
孤儿进程
主进程已经死亡(非正常死亡),儿子进程还在运行中。
| 守护进程 |
守护进程: 守护着某个进程,一旦守护的进程结束,守护的进程也会随之结束
from multiprocessing import Process import time def test(name): print("总管:%s is running" % name) time.sleep(3) print('总管: %s is over' % name) if __name__=='__main__': p = Process(target=test, args=('jason',)) #把p进程设置为守护进程 p.daemon = True #设置为守护进程 p.start() print("皇帝驾崩了") time.sleep(0.1) print('被守护的主进程') ##运行结果 “‘D:\Python36\python.exe D:/Users/admin/PycharmProjects/pythonProject6/僵尸进程/守护进程.py 皇帝驾崩了 总管:jason is running 被守护的主进程”“ ##守护进程is over 不会执行,因为主进程结束后,p 进程内也会结束
| 互斥锁 |

拿抢票举例,数据库中车票还剩一张,有一个购买功能,先用文件操获取数据库中的数据,在进行减一运算再保存,如果是并发状态下执行该功能,可以有多个进程同时对数据修改成功,也就有多个人同时购买同一张票,并且购买成功了,造成数据错乱等安全性的问题。
问题:并发情况下操作同一份数据,极其容易造成数据错乱
解决措施:将并发变成串行,虽然降低了效率但是提升了数据的安全性
- 锁就是可以实现将并发变成串行

浙公网安备 33010602011771号