锁
锁
一、使用锁的原因:
在进程的执行过程中,进程的执行顺序完全由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
# 执行结束,释放资源,归还钥匙