并发控制

互斥 原子性控制

多处理器系统上的正确互斥实现

void lock() { 
retry: 
	int got = atomic_xchg(&status, ❌);
	if (got != ✅) { goto retry; }
}

操作系统内核中的互斥锁

应用程序中的互斥锁

同步 线程执行顺序控制 多个线程的执行达到某种指定的一致状态

互斥锁实现同步

注:linux似乎不允许一个线程获取锁,在另一个线程释放锁

获取锁=等待token 释放锁=发出token