C++ 在析构函数中锁定QMutex

C++ 在析构函数中锁定QMutex,c++,multithreading,qt4,thread-safety,C++,Multithreading,Qt4,Thread Safety,我创建了一个类,使用QMutex对象以线程安全的方式处理共享队列。此类的属性之一是指针队列,因此描述器应该取消分配队列中可能存在的每个对象 析构函数应该在释放队列中的对象之前锁定互斥锁吗?是的,应该 您从某个线程A调用析构函数。如果在该线程A开始从队列中删除指针时,您的处理器将开始执行另一个线程B的指令,该线程正试图读取某些内容,然后从A返回一些指令,例如,您将收到内存损坏 线程安全意味着您在更改它时总是锁定它。如果您阅读,至少共享锁定

我创建了一个类,使用QMutex对象以线程安全的方式处理共享队列。此类的属性之一是指针队列,因此描述器应该取消分配队列中可能存在的每个对象

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

是的,应该

您从某个线程A调用析构函数。如果在该线程A开始从队列中删除指针时,您的处理器将开始执行另一个线程B的指令,该线程正试图读取某些内容,然后从A返回一些指令,例如,您将收到内存损坏

线程安全意味着您在更改它时总是锁定它。如果您阅读,至少共享锁定