补全:标出要保护的行
贯穿 n07 的程序(一个小仓库),每行标了它碰的数据:
1 total = total + amount # 共享 total,写
2 log = [] # 本地
3 log.append("入库") # 本地
4 if stock >= need: # 共享 stock,读(检查)
5 stock = stock - need # 共享 stock,写(动作)
6 count = count + 1 # 共享 count,写
7 print(total) # 共享 total,只读
8 name = name.upper() # 本地补全 need_lock(lines):一行需要锁,当且仅当它碰的共享数据「在某一行被写过」(只读的数据不用锁)。交回需要锁的行号列表。再加一份数据 label 只被读(第 9 行),看它不需要。
全部评论