zoukankan      html  css  js  c++  java
  • Day11 进程相关

    互斥锁的原理及案例分析

    速度  内存/磁盘

    安全  互斥锁

    互斥锁与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

    生产者与消费者模型与守护线程的结合

    线程

     

  • 相关阅读:
    P4556 [Vani有约会]雨天的尾巴(线段树合并)
    bzoj3590: [Snoi2013]Quare
    P3187 [HNOI2007]最小矩形覆盖
    对文件中的名字进行随机抽选(小脚本)
    用shell编写一个三角形图案
    HUE安装与使用
    史上最全CentOS6离线安装部署Cloudera Manager5.9.3
    ReLU 函数
    关于反向传播
    关于微分
  • 原文地址:https://www.cnblogs.com/swiki/p/9613030.html
Copyright © 2011-2022 走看看