v1A*_*xvw 2 c++ mutex pthreads race-condition stdvector
我正在设计一个带有服务器的程序,让两个客户端进行通信.有一个客户端执行命令,另一个客户端执行命令.
为了使这项工作,我有两个线程:一个用于受控客户端的线程,另一个用于控制器客户端.
受控客户端始终保持连接,具有包含任务的向量,并在添加任务时执行这些任务.它有一个无限的while循环,当连接关闭时它会停止.
控制器 - 客户端将任务添加到向量.
现在因为在两个线程之间共享一个向量,可能会出现竞争条件,但由于一个线程只添加对象而另一个只弹出对象,这是必要的吗?我试图用这个问题制作一个流程图,但也许不清楚.我真的不知道如何创建流程图:

我正在使用std::vector <CustomClass>C++实现这一点.
提前谢谢,
ief2
编辑:附加问题:vector.size()呼叫需要互斥吗?
是的,这需要一个互斥锁.
vector.pop_front()并且vector.push_back()在同一时间执行会产生各种各样的混乱 - 假设非标准vector.pop_front()符合名称的含义.
旁注:使用队列或列表而不是向量