在析构函数中锁定QMutex

时间:2014-07-07 10:28:47

标签: c++ multithreading qt4 thread-safety

我创建了一个类,使用QMutex对象以线程安全的方式处理共享队列。此类的一个属性是指针队列,因此析构函数应该释放队列中可能存在的每个对象。

析构函数是否应该在释放队列中的对象之前锁定互斥锁?

1 个答案:

答案 0 :(得分:0)

是的,你应该。

从某个线程(A)调用析构函数。如果当线程A开始从队列中删除指针时,处理器将开始执行来自另一个线程(B)的指令,即尝试读取某些内容,然后从A返回一些指令,例如,您将收到内存损坏。< / p>

线程安全意味着如果更改它,您始终会锁定。如果你阅读,至少可以共享锁定。