from mosaic import *
OS2023(9)
Changelog & 反馈
背景回顾:我们已经了解如何通过 “不可优化、保证顺序” 的原子指令实现自旋锁,以及借助操作系统 (系统调用) 实现线程的睡眠,从而不致于出现 CPU 空转的浪费。然而,互斥并不总是能满足多个并发线程协作完成任务的需求,例如大家试着在完成 Minilab 时应该已经遇到了一些困难。如何能便捷地让共享内存的线程协作以共同完成计算任务?
本讲内容:并发控制:同步
slideshow('9.1')
demo('pc-mutex', 'c/pc-mutex.c', libs=['thread.h', 'thread-sync.h'])
slideshow('9.2')
demo('pc-cv', 'c/pc-cv.c', libs=['thread.h', 'thread-sync.h'])
model('m/cv-if.py', check=True)