两条线程各加 30 次
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。)
bump 把「读、睡一毫秒、写」当成一次加。两条线程各加 30 次,看最后是不是 60:
import threading, time
box = {"n": 0}
def bump():
for _ in range(30):
tmp = box["n"]
time.sleep(0.001)
box["n"] = tmp + 1
ts = [threading.Thread(target=bump) for _ in range(2)]
for t in ts:
t.start()
for t in ts:
t.join()
print(str(box["n"] < 60) + "/" + str(box["n"] > 0))
全部评论