一个元组少了逗号
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。)
故意把 args 写成没逗号的括号,看线程收到几个参数(异常在线程里被接住):
import threading, time
SOURCES = [("首页", 0.05, 1200), ("新闻", 0.08, 3400), ("图片", 0.03, 8800), ("视频", 0.10, 20000), ("论坛", 0.06, 2600), ("天气", 0.02, 300)]
def fetch(name, wait, size):
time.sleep(wait)
return size
seen = []
lock = threading.Lock()
def count(*a):
with lock:
seen.append(len(a))
x = threading.Thread(target=count, args=("首页"))
y = threading.Thread(target=count, args=("首页",))
x.start()
y.start()
x.join()
y.join()
print(",".join(str(n) for n in sorted(seen)))
全部评论