在析构函数中锁定QMutex

Locking a QMutex inside a destructor

本文关键字:QMutex 锁定 析构函数      更新时间:2023-10-16

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

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

是的,你应该。

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

线程安全意味着如果你改变它,你总是锁定它。如果你读到。