摘要: 1 命名空间 不同服务的锁用不同的namespace来区分,不同元数据服务上锁namespace的名字不同,元数据锁和数据锁的namespace也不同,客户端理论上会向所有的服务发请求,所以客户端的锁分布在不同的namespace下,锁客户端用namespace来组织不同的锁链表. 分布式锁模块跟元 阅读全文
posted @ 2021-12-22 00:12 龙虾天天 阅读(32) 评论(0) 推荐(0)
摘要: 何时需要线程同步 线程完成前,需要等待另一个线程执行线程需要等待特定事件发生线程等待某个条件变为true 线程同步的方式 持续检查共享标记 void wait_for_flag() { std::unique_lock lock(m); while (!flag) { lock.unlock(); 阅读全文
posted @ 2021-12-19 18:39 龙虾天天 阅读(38) 评论(0) 推荐(0)
摘要: 通常我们使用锁保护线程间共享数据,这也是最基本的方式。 当访问共享数据前,使用互斥量将相关数据锁住,再当访问结束后,再将数据解锁。线程库需要保证,当一个线程使用特定互斥量锁住共享数据时,其他的线程想要访问锁住的数据,都必须等到之前那个线程对数据进行解锁后,才能进行访问。这就保证了所有线程能看到共享数 阅读全文
posted @ 2021-12-18 19:48 龙虾天天 阅读(83) 评论(0) 推荐(0)