我创建了一个类,使用QMutex
对象以线程安全的方式处理共享队列。此类的一个属性是指针队列,因此析构函数应该释放队列中可能存在的每个对象。
析构函数是否应该在释放队列中的对象之前锁定互斥锁?
答案 0 :(得分:0)
是的,你应该。
从某个线程(A)调用析构函数。如果当线程A开始从队列中删除指针时,处理器将开始执行来自另一个线程(B)的指令,即尝试读取某些内容,然后从A返回一些指令,例如,您将收到内存损坏。< / p>
线程安全意味着如果更改它,您始终会锁定。如果你阅读,至少可以共享锁定。