查看完整版本: [-- QVariantHash线程安全吗 --]

QTCN开发网 -> Qt基础编程 -> QVariantHash线程安全吗 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

yanwuyue 2020-02-09 19:40

QVariantHash线程安全吗

多线程情况下,一个线程只写(直接=赋值),一个线程只读,会奔溃吗
不用考虑数据正确性,数据撕裂也没关系,只要不崩溃

  1. class A{
    public:
         QVariantHash cache;
    }

    A* a=new A();
    //A运行在另外的线程上
    a->cache


fsu0413 2020-02-10 18:27
不安全,行为未定义,可能随机崩溃

XChinux 2020-02-13 00:25
测试测试

yanwuyue 2020-02-13 12:44
找不到资料,小并发下并没有崩溃,但是最后我还是加了QReadWriteLock,保险点

fsu0413 2020-02-14 12:56
yanwuyue:找不到资料,小并发下并没有崩溃,但是最后我还是加了QReadWriteLock,保险点 (2020-02-13 12:44) 

有资料啊,Qt官方文档写了reentrant,没写thread-safe
如果是线程安全会直接写thread-safe

yanwuyue 2020-02-14 15:52
fsu0413:有资料啊,Qt官方文档写了reentrant,没写thread-safe
如果是线程安全会直接写thread-safe (2020-02-14 12:56) 

没看到过thread-safe,没注意到有这个标示,我研究研究

不过线程安全也分情况,我这允许期值不确定性,只要保证不崩溃就好

fsu0413 2020-02-14 21:15
yanwuyue:没看到过thread-safe,没注意到有这个标示,我研究研究
不过线程安全也分情况,我这允许期值不确定性,只要保证不崩溃就好 (2020-02-14 15:52) 

QVariantHash的话看QHash,里面说了所有函数都是reentrant。
那个reentrant是可以点进去看的,里面说了reentrant和thread-safe都是什么意思。


查看完整版本: [-- QVariantHash线程安全吗 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled