我正在使用带有 boost 线程、锁互斥锁和所有好东西的 c++。
两个线程 A 和 B。A 是一个网络线程,其中有来自客户端的信息来回传递。B 是一个带有变量的工作者,它需要是线程安全的。
A类有多个线程,B类只是一个线程。A 的实例将被添加到 B 的作业列表中,并且 A 将锁定直到 B 完成任务。(作业的线程安全列表工作正常)
A 将作业添加到 B 然后锁定,但在大多数情况下,在 A 锁定之前。B 将处理该作业并在 A 应用锁之前(尝试)释放锁。导致As死锁。
我不确定我应该在这里做什么。我可以发布代码,但我想在概念上更容易讨论。