闭卷解释线程启动与join的编译阶段、对象状态、规则和失败边界。
C++程序设计 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷解释数据竞态与互斥锁的编译阶段、对象状态、规则和失败边界。
闭卷解释lock_guard与作用域锁的编译阶段、对象状态、规则和失败边界。
闭卷解释条件变量与谓词的编译阶段、对象状态、规则和失败边界。
闭卷解释原子操作与内存序入门的编译阶段、对象状态、规则和失败边界。
闭卷解释任务、future与结果传播的编译阶段、对象状态、规则和失败边界。
闭卷解释确定性并发模型实验的编译阶段、对象状态、规则和失败边界。
规则:unsynchronized conflicting access races;任务:写一个能编译运行的最小程序展示“数据竞态与互斥锁”,记录输入、关键对象状态、输出和编译命令,并用规则 unsynchronized conflicting access races 解释结果;边界:不得把“数据竞态与互斥锁”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:join establishes completion;任务:写一个能编译运行的最小程序展示“线程启动与join”,记录输入、关键对象状态、输出和编译命令,并用规则 join establishes completion 解释结果;边界:不得把“线程启动与join”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:wait loops on a predicate;任务:写一个能编译运行的最小程序展示“条件变量与谓词”,记录输入、关键对象状态、输出和编译命令,并用规则 wait loops on a predicate 解释结果;边界:不得把“条件变量与谓词”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:RAII releases mutex on every path;任务:写一个能编译运行的最小程序展示“lock_guard与作用域锁”,记录输入、关键对象状态、输出和编译命令,并用规则 RAII releases mutex on every path 解释结果;边界:不得把“lock_guard与作用域锁”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:future transports value or exception;任务:写一个能编译运行的最小程序展示“任务、future与结果传播”,记录输入、关键对象状态、输出和编译命令,并用规则 future transports value or exception 解释结果;边界:不得把“任务、future与结果传播”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:atomic order constrains visibility;任务:写一个能编译运行的最小程序展示“原子操作与内存序入门”,记录输入、关键对象状态、输出和编译命令,并用规则 atomic order constrains visibility 解释结果;边界:不得把“原子操作与内存序入门”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界
规则:schedule determines observable trace;任务:写一个能编译运行的最小程序展示“确定性并发模型实验”,记录输入、关键对象状态、输出和编译命令,并用规则 schedule determines observable trace 解释结果;边界:不得把“确定性并发模型实验”只写成语法模板;必须说明类型、所有权/生存期、失败输入、复杂度或并发可见性中与本节有关的边界