笔记
BenBenF19
纸上得来终觉浅,绝知此事要躬行
展开
-
读写锁和自旋锁
读写锁和自旋锁读写锁自旋锁读写锁读写锁的三种状态:读模式下加锁状态(以共享模式锁住)写模式下加锁状态(以互斥模式锁住 )不加锁状态读写锁的特点:一次只有一个线程可以占有写模式的读写锁,但是多个线程可以同时占有读模式的读写锁。当有一个线程试图以写模式获取锁时,通常会阻塞随后的读模式锁请求,以避免读模式锁长期占用,而等待写模式锁的请求一直得不到满足。自旋锁自旋锁特点:自旋锁与互斥量类似,但它不是通过休眠使线程阻塞,而是在获取锁之前一直处于忙等(自旋)阻塞状态,即一直消耗CPU资源原创 2021-05-31 23:16:14 · 265 阅读 · 0 评论 -
互斥量使用要点
互斥量使用要点:所有线程设计都应该遵守相同的数据访问规则,否则,如果允许某个线程在没有得到锁的情况下访问共享数据,还是会出现数据不一致的问题。所有线程都应该按同一顺序上锁,以避免死锁(在其他资源上仍可能出现死锁)。如果无法按顺序上锁, 可以在不能获取锁时,先释放已占有锁,做好清理工作,延时一段时间再试。...原创 2021-05-30 22:49:20 · 225 阅读 · 0 评论 -
线程同步(数据一致性)
线程同步(数据一致性)以下情况会出现数据一致性问题:变量修改时间多于一个存储器访问周期多个线程试图同时修改同一变量程序对变量的操作步骤组合并非原子操作以下情况不会出现数据一致性问题:执行原子操作解决数据一直性问题...原创 2021-05-30 19:51:48 · 252 阅读 · 0 评论