并发控制
互斥 原子性控制
多处理器系统上的正确互斥实现
void lock() {
retry:
int got = atomic_xchg(&status, ❌);
if (got != ✅) { goto retry; }
}操作系统内核中的互斥锁
应用程序中的互斥锁
同步 线程执行顺序控制 多个线程的执行达到某种指定的一致状态
互斥锁实现同步
注:linux似乎不允许一个线程获取锁,在另一个线程释放锁
获取锁=等待token 释放锁=发出token
并发控制
互斥 原子性控制
多处理器系统上的正确互斥实现
void lock() {
retry:
int got = atomic_xchg(&status, ❌);
if (got != ✅) { goto retry; }
}操作系统内核中的互斥锁
应用程序中的互斥锁
同步 线程执行顺序控制 多个线程的执行达到某种指定的一致状态
互斥锁实现同步
注:linux似乎不允许一个线程获取锁,在另一个线程释放锁
获取锁=等待token 释放锁=发出token