这些非原子操作在被编译为汇编代码后不止一条指令。
new 关键字;
pInst = new T; // 对于这样一个赋值语句,更是包含了如下: // 1. 申请内存空间; // 2. 在内存的位置上调用构造函数; // 3. 将内存的地址赋值给 pInst
pInst = new T; 这样的一个操作,包含的三个步骤,(2)和(3)的顺序是可以颠倒的,但内存空间的申请必须是第一步。
pInst = new T;