线程版最快能到多快
六个来源分别要等 0.02 到 0.10 秒。线程再多,线程版的总时间也不会低于【0】。
真的量一次
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 用 time.perf_counte
按模型算一算
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 不量,直接按 SOURCES 算:顺
补全:计时器
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 补全 time_it(fn):记下开
补全:线程版
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 补全 threaded():六条线程
补全:假并发有多慢
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) 补全 fake():每造一条线程就
线程函数的 return 去哪了
fetch 有 return,可主线程 join 之后却拿不到它的返回值。因为【0】。
线程里抛了异常
一条线程里的 fetch 抛了 ValueError,没人接。结果是【0】。
少了一项
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) (这一节的 fetch 多了一条:来
装一个钩子
(每道题开头都有同一段:六个来源 SOURCES,每项是 (名字, 要等的秒数, 字节数);fetch(name, wait, size) 睡 wait 秒后交回 size——「等」的时候别人能干活。) (这一节的 fetch 多了一条:来