jjzjj

RefCountedObject

全部标签

C++:多线程和引用计数对象

我目前正在尝试将单线程程序传递给多线程。该软件大量使用“refCounted”对象,这会导致多线程中出现一些问题。我正在寻找一些设计模式或可能解决我的问题的东西。主要问题是线程之间的对象删除,通常删除只会减少引用计数,当refcount为零时,对象就会被删除。这在单线程程序中运行良好,并且通过复制大对象可以显着提高性能。然而,在多线程中,两个线程可能想同时删除同一个对象,因为对象受互斥量保护,只有一个线程删除对象并阻塞另一个线程。但是当它释放互斥锁时,另一个线程会继续执行无效的(已释放的对象),这会导致内存损坏。这是一个RefCountedObject类的例子classRefCount