一、使用锁的原因:

在进程的执行过程中,进程的执行顺序完全由CPU来调度和安排,没有固定的顺序,windows中会首要执行主进程,但是其他的操作系统在调度的时候不分主进程和子进程。为了使进程可以有序的调度必须使用锁机制。

二、锁机制下的情形:

  • 情形一:当进程拿到钥匙后,开锁使用资源,在使用期间这些资源被锁上,其他的进程获取不到。
  • 情形二:当拿到钥匙的进程在执行过程中,没有钥匙的进程等待,当拿到钥匙的进程执行完后归还钥匙,下一个进程获取钥匙占有资源,执行进程。

三、使用的基本流程:

  • 导入:from multiprocessing import Lock
  • 实例化锁对象:l = Lock()
  • 获取钥匙,占有资源:l.acquire()
  • 执行结束,释放锁,归还资源:l.release()
def put_money(l):
    money = 100000
    l.acquire()
    # 获取钥匙,上锁
    for i in range(10):
        num = random.randint(1, 50000)
        money += num
        print('存钱%s,余额%s' % (num, money))

    l.release()
    return money

    # 执行结束,释放资源,归还钥匙
posted @ 2020-03-08 14:05  大道至诚  阅读(103)  评论(0编辑  收藏  举报