【发布时间】:2014-08-30 11:12:39
【问题描述】:
当被多个线程使用时,Qt 容器作为只读容器是安全的。但是写访问呢?我可以调整QVector 的大小并在不同的线程中使用operator[] 进行写作吗? QVector 的大小将保持不变,每个线程将写入不同的内存位置(每个线程都有自己的索引),因此不会同时访问相同的内存。 QVector 将是一个全局变量。
【问题讨论】:
-
如果每个线程都写入向量的单独部分,则您不需要将所有这些数据放在一个向量中。有一个每线程向量。
-
@KubaOber 实际上我这样做了,我需要确保向量的顺序与我有一个单线程应用程序一样。如果我在线程完成后尝试加入向量会更难。
标签: c++ qt thread-safety