Home avatar

This is my blog

Cpp 初始化风格

cpp 的初始化风格

兼容 C 的初始化风格:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
int i = 10;
int a[] = {1, 2, 3};

struct Foo {
  char c;
  int i;
};

union Bar {
  char c;
  int i;
};

Foo foo = {.c = 'A', .i = 42};
Bar bar = {.c = 'A'};

但是 Cpp 引入了类, 这样会导致一个问题:

内存模型和原子操作的总结

内存模型和原子操作的设计目的

通过底层的设计可以让操作系统或 cpu 给用户提供一种操控颗粒度更小的各个线程之间的内存访问同步的功能。

原子操作和互斥量的应用场景

如果仅需要对少量的简单数据进行原子操作,原子锁可能比互斥量更高效。但在涉及到复杂数据结构或需要独占资源访问的情况下,互斥量提供了更强的同步能力,但通常会涉及线程的切换和上下文切换,因此可能会引入一定的性能开销。

0%