互斥锁的原理及案例分析
速度 内存/磁盘
安全 互斥锁
互斥锁与CPU调度的区别
jion模拟抢票

# 互斥锁的原理:就是将多个任务对共享数据修改操作由并发变成”串行“,牺牲了效率保证数据安全 from multiprocessing import Process,Lock import json import time,random def search(i): with open('db.json','rt',encoding='utf-8') as f: dic=json.load(f) time.sleep(1) print('路人%s查看到剩余票数:%s' %(i,dic['count'])) def get(i): with open('db.json','rt',encoding='utf-8') as f: dic=json.load(f) if dic['count'] > 0: # 有票 dic['count']-=1 time.sleep(random.randint(1,3)) with open('db.json','wt',encoding='utf-8') as f: json.dump(dic,f) print('路人%s抢票成功' % i) else: print('路人%s抢票失败' %i) def task(i,mutex): search(i) mutex.acquire() get(i) mutex.release() if __name__ == '__main__': mutex = Lock() for i in range(1,11): p=Process(target=task,args=(i,mutex)) p.start() # p.join() print('主')
生产者与消费者模型
什么是生产者消费者?
为什么用生产者消费者?
怎么用生产者消费者?
生产者与消费者模型的案例
生产者与消费者模型的bug
生产者与消费者模型与守护线程的结合