1、什么是CAS
⽐较并交换(compare and swap, CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作,从⽽避免多线程同时改写某⼀数据时由于执⾏顺序不确定性以及中断的不可预知性产⽣的数据 不⼀致问题。 该操作通过将内存中的值与指定数据进⾏⽐较,当数值⼀样时将内存中的数据替换为新的值。
2、操作原子
i++; 并不是原子性的
3、几种锁
4、锁引起的问题:
1)cache损坏;同一线程在不同cpu运行,cache失效。
2)同步机制上的争抢队列;mutex+cond
3)动态分配内存;频繁使用malloc分配内存,降低性能;可以适用内存池来替代malloc提升性能。