从记录里认出丢更新
给真机上的计数器加了打印,每一步记一行。数一数记录里「两条线程读到同一个值」发生了几次(每个值算一次):
log = ["T0 read 0", "T1 read 0", "T0 write 1", "T1 write 1", "T0 read 1", "T0 write 2", "T1 read 2", "T0 read 2", "T1 write 3", "T0 write 3", "T1 read 3", "T1 write 4"]
reads = {}
for line in log:
t, op, v = line.split()
if op == "read":
reads.setdefault(v, set()).add(t)
dup = [v for v in sorted(reads, key=int) if len(reads[v]) > 1]
print(str(len(dup)) + "/" + ",".join(dup))
全部评论