开了几条、活着几条
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。)
造三条线程指向 fetch(先不 join)。看 start 之后立刻数:活着的线程数、是否都在跑:
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
ts = [threading.Thread(target=fetch, args=s) for s in SOURCES[:3]]
for t in ts:
t.start()
alive = sum(1 for t in ts if t.is_alive())
print(str(len(ts)) + "/" + str(alive) + "/" + str(threading.active_count()))
for t in ts:
t.join()
全部评论