多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 同步概念:复习题 > 原文:<https://github.com/angrave/SystemProgramming/wiki/Synchronization-Concepts%3A-Review-Questions> > 注意线程编程同步问题在单独的 Wiki 页面上。本页重点介绍概念主题。问题编号可能会有变化 ## Q1 每个科夫曼条件意味着什么? (例如,你能提供每个的定义) * 等等 * 循环等待 * 没有先发制人 * 相互排斥 ## Q2 给出一个真实的例子,依次打破每个 Coffman 条件。需要考虑的情况:画家,油漆和油漆刷。等待和等待循环等待没有先发制人相互排斥 ## Q3 识别用餐哲学家代码何时导致死锁(或不)。例如,如果您看到以下代码片段不满足 Coffman 条件? ``` // Get both locks or none. pthread_mutex_lock( a ); if( pthread_mutex_trylock( b ) ) { /*failed*/ pthread_mutex_unlock( a ); ... } ``` ## Q4 有多少进程被阻止? * P1 获得 R1 * P2 获得 R2 * P1 收购 R3 * P2 等待 R3 * P3 收购 R5 * P1 收购 R4 * P3 等待 R1 * P4 等待 R5 * P5 等待 R1 ## Q5 对于读写器问题,下列陈述中有多少是正确的? * 可以有多个活跃的读者 * 可以有多个活动作者 * 当有活动的写入器时,活动读取器的数量必须为零 * 如果有活动的阅读器,则活动写入器的数量必须为零 * 作者必须等到当前活跃的读者完成