barrier使用

barrier可阻止cup动态调度指令。

T *  temp = new T;

barrier();

pInst = temp;

若不加barrier();cpu有可能会先执行pInst = temp;然后再执行T *  temp = new T;这样,temp的构造过程尚未结束,另一个线程又使用pinst对象。就会引发错误。



你可能感兴趣的:(barrier使用)