我正在构建一个多生产者单消费者机制。我想做这样的事情,假设我可以访问一个可用于两个线程的 boost lockfree 队列实例和一个同步条件变量:
线程 1(生产者):
Object * myObj = new Object();
lockfree_queue.push(myObj);
condition_variable.notify();
线程 2(消费者):
condition_variable.wait();
Object * myObj = lockfree_queue.pop();
...
delete myObj;
在多核系统上,线程 2 是否有可能将 myObj 视为指向未初始化的内存或部分初始化的对象(假设它有一些成员变量)?