当多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图,当多个线程同时去修改这片内存时,可能出现偏差,得到与预期不符合的值。为啥需要同步,一件事情逻辑上一定是有序的,即使在并发环境下;而操作系统对于多线程不会自动帮我们串行化,所以需要我们通过操作系统提供的同步方式api,结合自己的业务逻辑,利用多线程提高性能的同时,保证业务逻辑的正确性。一般而言,linux下同步方式主要有4种,原子锁,互斥量,读写锁和条件变量。下面一一介绍几种同步方式。 1. spinlock 1) 概念 spinlock是一种互斥结构,通过CPU提供的特殊的原子指令集合实现互斥地访问一个资源,需