readLock.lock();
- 这意味着,如果有任何其他线程在 写 (即持有写锁),则在此处停止直到没有其他线程在写。
- 一旦授予 了该锁,在释放该锁之前,将不允许其他线程进行 写 (即获取写锁)。
writeLock.lock();
- 这意味着,如果有任何其他线程正在 读取 或 写入,请在此处停止并等待,直到没有其他线程在读取或写入。
- 授予锁后,在释放该锁之前,将不允许其他线程 读取 或 写入(即获取读取或写入锁)。
结合使用这些功能,您一次只能安排一个线程进行写访问,但是,除了一个线程正在写时,您可以同时阅读任意数量的阅读器。
换一种方式。你想每次 读取 从结构,采取了 读 锁。每次您 要写时 ,都要 写
一个锁。这样一来,只要发生写操作,就不会有人在读(您可以想象您具有独占访问权),但是只要没有人在写,就会有许多读者同时阅读。



