• 187阅读
  • 6回复

[提问]QVariantHash线程安全吗 [复制链接]

上一主题 下一主题
离线yanwuyue
 

只看楼主 倒序阅读 楼主  发表于: 02-09
线程情况下,一个线程只写(直接=赋值),一个线程只读,会奔溃吗
不用考虑数据正确性,数据撕裂也没关系,只要不崩溃

  1. class A{
  2. public:
  3.      QVariantHash cache;
  4. }
  5. A* a=new A();
  6. //A运行在另外的线程上
  7. a->cache

离线fsu0413

只看该作者 1楼 发表于: 02-10
不安全,行为未定义,可能随机崩溃
离线XChinux

只看该作者 2楼 发表于: 02-13
测试测试
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线yanwuyue

只看该作者 3楼 发表于: 02-13
找不到资料,小并发下并没有崩溃,但是最后我还是加了QReadWriteLock,保险点
离线fsu0413

只看该作者 4楼 发表于: 02-14
回 yanwuyue 的帖子
yanwuyue:找不到资料,小并发下并没有崩溃,但是最后我还是加了QReadWriteLock,保险点 (2020-02-13 12:44) 

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

只看该作者 5楼 发表于: 02-14
回 fsu0413 的帖子
fsu0413:有资料啊,Qt官方文档写了reentrant,没写thread-safe
如果是线程安全会直接写thread-safe (2020-02-14 12:56) 

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

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

只看该作者 6楼 发表于: 02-14
回 yanwuyue 的帖子
yanwuyue:没看到过thread-safe,没注意到有这个标示,我研究研究
不过线程安全也分情况,我这允许期值不确定性,只要保证不崩溃就好 (2020-02-14 15:52) 

QVariantHash的话看QHash,里面说了所有函数都是reentrant。
那个reentrant是可以点进去看的,里面说了reentrant和thread-safe都是什么意思。
快速回复
限100 字节
 
上一个 下一个