帮我理解这一点。 这里是上下文。当我在C++中执行buffer1.push_back(buffer2.front())时究竟发生了什么?
- 我用C编写程序++。
- 我有2个缓冲区(deque)。我们称它们为buffer1和buffer2;
- 我有2个线程:一个线程被填充缓冲器1与随机值。另一个是将最早的buffer1值复制到buffer2;
- 我正在使用互斥锁。
我想值复制缓冲器1到缓冲器2的1号位内,为了执行要做到这一点,我写了下面的代码行:
线程1
double a = 20.1;
buffer1.push_back(a);
线程2
buffer2.push_back(buffer1.front());
我的问题是: 执行这一点,我是合通过参考找到价值或传递价值? 我解释我的问题。我在运行程序时遇到了随机内存问题。我想确定问题的根源在哪里。
谢谢大家。
你的容器里面有什么?理想情况下,你会提供一个[MCVE]。 – 5gon12eder
[''front'](http://en.cppreference.com/w/cpp/container/deque/front)和['push_back'](http://en.cppreference.com/w/)的文档cpp/container/deque/push_back)不清楚发生了什么? – NathanOliver
你需要互斥体 – AndyG