文章预览
《架构师之路:架构设计中的100个知识点》 26.互斥的内核,分布式锁 什么时候要做互斥? 多个访问方,对同一个资源进行操作,要做互斥。 实现互斥的核心是什么? 需要利用一个多个访问方【同时】能够访问到的【锁资源】来实施互斥的。 案例1:同一个进程内,多个线程,怎么做互斥? 典型场景: 生产者消费者对同一个queue进行操作。 如上图所示, 在同一个进程空间内 ,设定一个所有线程都能够访问到的flag,或者锁变量,就能实施互斥。 大家一起抢锁变量,抢到的线程操作队列,操作完之后释放锁变量。 案例2: 同一台机器上,多个进程,怎么做互斥? 典型场景: 手机上多个APP对同一个日志文件进行写入。 如上图所示,在同一台机器上,设定一个所有进程都能够访问到的锁资源,就能实施互斥。 更 具体来说,机器上文件系统里 inode 锁
………………………………