原子变量:很适合整数操作,但不适用于比特位操作
自旋锁:用于保护短的代码段,其中只包含少量C语句,因此会很快执行完毕;长时间会浪费cpu资源;
信号量:与自旋锁相比,信号量适合于保护更长的临界区,以防止并行访问。但它们不应该用于保护较短 的代码范围,因为竞争信号量时需要使进程睡眠和再次唤醒,代价很高
RCU的性能很好,不过对内存有一定的开销, 但大多数情况下可以忽略;适用于读频繁而写操作较少的场景;
读写锁:适用于读操作远多于写操作的情况;
互斥锁:适用于保护数据不被并发修改的场合。
原子变量:很适合整数操作,但不适用于比特位操作
自旋锁:用于保护短的代码段,其中只包含少量C语句,因此会很快执行完毕;长时间会浪费cpu资源;
信号量:与自旋锁相比,信号量适合于保护更长的临界区,以防止并行访问。但它们不应该用于保护较短 的代码范围,因为竞争信号量时需要使进程睡眠和再次唤醒,代价很高
RCU的性能很好,不过对内存有一定的开销, 但大多数情况下可以忽略;适用于读频繁而写操作较少的场景;
读写锁:适用于读操作远多于写操作的情况;
互斥锁:适用于保护数据不被并发修改的场合。