并发读,
读和写互斥
lock字段:
未锁:0x01000000
读:0x00ffffff,0x00fffffe.....
写:0x00000000
break_lock字段初植为0
递减之前大于0,获得读锁
释放读锁, 简单增加读lock记数.
减0x01000000为0, 获得写锁
加0x01000000,释放写锁
读锁的判断是非原子性的,但是不要紧,因为这个时候写锁是被阻止的.
并发读,
读和写互斥
lock字段:
未锁:0x01000000
读:0x00ffffff,0x00fffffe.....
写:0x00000000
break_lock字段初植为0
递减之前大于0,获得读锁
释放读锁, 简单增加读lock记数.
减0x01000000为0, 获得写锁
加0x01000000,释放写锁
读锁的判断是非原子性的,但是不要紧,因为这个时候写锁是被阻止的.