【问题标题】:Thread safety of AnsiString reference counting mechanismAnsiString 引用计数机制的线程安全
【发布时间】:2020-06-02 13:24:55
【问题描述】:

我的问题是关于 Borland C++Builder 6.0 中的 AnsiString
如您所知,VCL 的 AnsiString 使用引用计数。
那个引用计数线程安全吗?
例如,假设我们有std::queue<AnsiString> asq;
我们在线程#1 中的该队列中推送一个 AnsiString 值,然后我们在线程#2 中执行asq.pop()。 (对asq 本身的访问是同步的。)不修改字符串。
以这种方式使用 AnsiString(s) 时调用 AnsiString 的析构函数时是否会出现内存泄漏?

【问题讨论】:

标签: c++builder vcl c++builder-6


【解决方案1】:

是的,引用计数是线程安全的。无论何时递增和递减,RTL 都会在 refcount 上放置一个锁。在您描述的场景中不会有任何内存泄漏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2018-01-19
    • 1970-01-01
    相关资源
    最近更新 更多