zoukankan      html  css  js  c++  java
  • 进程锁

    import json
    import time
    from multiprocessing import Process
    from multiprocessing import Lock

    def show(i):
    with open('ticket',encoding='utf-8') as f:
    dic= json.load(f)
    print('余票:%i'%dic['ticket'])



    def buy_ticket(i,lock):
    lock.acquire() #锁的开启
    with open('ticket',encoding='utf-8') as f:
    dic=json.load(f)
    time.sleep(0.1)
    if dic['ticket']>0:
    dic['ticket'] -= 1
    print('33[32m%s买到票了33[0m'%i)
    else:
    print('33[31m%s没买到票33[0m'%i)
    time.sleep(0.1)
    with open('ticket','w') as f:
    json.dump(dic,f)
    lock.release() #释放锁

    if __name__=='__main__':
    for i in range(10):
    p=Process(target = show,args=(i,))
    p.start()
    lock =Lock() #锁的定义
    for i in range(10):
    p=Process(target= buy_ticket,args=(i,lock)) # 锁的传入
    p.start()
  • 相关阅读:
    fastjson反序列化
    BaseBean构造
    easyUI_rowdata
    SVN提交报错
    jsp页面数据保留两位小数
    数据库 建立
    增删改查问
    解决plsql中文乱码问题
    oracle_解锁表
    ibatis_compareValue
  • 原文地址:https://www.cnblogs.com/liu1983/p/13606320.html
Copyright © 2011-2022 走看看