线程多就一定快吗

(任务模型:每个任务写成 (名字, 算的格数, 等的格数)——「算」要占处理器,「等」是等磁盘或网络回话,不占处理器。「算账」的三个任务:核对算 4 等 0,写盘算 1 等 3,心跳算 1 等 5。) 「核对」是纯算 4 格、不等。给它再开

开始练习 →

一件做完再做下一件

(任务模型:每个任务写成 (名字, 算的格数, 等的格数)——「算」要占处理器,「等」是等磁盘或网络回话,不占处理器。「算账」的三个任务:核对算 4 等 0,写盘算 1 等 3,心跳算 1 等 5。) 三个任务串着做:每个任务算完、等完,下

开始练习 →

你等的时候我干

(任务模型:每个任务写成 (名字, 算的格数, 等的格数)——「算」要占处理器,「等」是等磁盘或网络回话,不占处理器。「算账」的三个任务:核对算 4 等 0,写盘算 1 等 3,心跳算 1 等 5。) 让「等」和别人的「算」重叠:处理器一次

开始练习 →

补全:算处理器空着几格

(任务模型:每个任务写成 (名字, 算的格数, 等的格数)——「算」要占处理器,「等」是等磁盘或网络回话,不占处理器。「算账」的三个任务:核对算 4 等 0,写盘算 1 等 3,心跳算 1 等 5。) 补全 idle_serial(task

开始练习 →

补全:最理想能压到几格

(任务模型:每个任务写成 (名字, 算的格数, 等的格数)——「算」要占处理器,「等」是等磁盘或网络回话,不占处理器。「算账」的三个任务:核对算 4 等 0,写盘算 1 等 3,心跳算 1 等 5。) 补全 best_time(tasks)

开始练习 →

一个处理器能并发吗

实验机只有一个处理器核,「算账」却有四个线程在「同时」推进。这是因为【0】。

开始练习 →

并行是什么

一口锅,三个菜轮着炒 把「算账」搬到一台四核的机器上,四个线程各占一个核。这时它们是【0】。

开始练习 →

并行的前提

要让程序真的并行起来,缺一不可的两样是【0】。

开始练习 →

一个核轮流切

一口锅,三个菜轮着炒 (只看「算」的格数:核对 4、写盘 1、心跳 1。处理器一次算一格。) round_robin 模拟一个核按时间片轮流:每次给一个任务算一格,轮完一圈再来。看处理顺序和总格数: JOBS = [("核对&qu

开始练习 →

两个核同时算

(只看「算」的格数:核对 4、写盘 1、心跳 1。处理器一次算一格。) makespan 把任务分给几个核(大的先分,谁最闲给谁),交回最晚完成的时刻。看 1 核、2 核、3 核各要几格: JOBS = [("核对",

开始练习 →