【问题标题】:Does a class instance thread affinity have any impact on its data?类实例线程亲和性对其数据是否有任何影响?
【发布时间】:2015-06-19 15:38:47
【问题描述】:

我们从QThread知道documentation

QObject 实例被称为具有线程亲和性,或者说它存在 在某个线程中。当 QObject 接收到排队的信号或 发布的事件,插槽或事件处理程序将在线程中运行 对象居住在其中。

线程亲和性对类实例数据有影响吗?类数据会变成线程数据吗?

除了上述之外,我问的原因是因为我想在其构造函数中传递另一个类的指针/引用。如果我是面向对象的,我不会直接访问它的数据,但是如果我调用另一个类的成员函数,它也会在这个类的线程中调用吗?

【问题讨论】:

  • 引用没有谈论类,而是谈论[类]的实例,这让我想知道你是否只是混淆了这两者。或者,您是否要引用类静态数据,它可以称为“类数据”而不是“实例数据”。
  • @UlrichEckhardt 我是指文档中的类对象实例,而不是类本身,我想我不想太罗嗦。
  • 请去编辑你的问题,把它说清楚!
  • @UlrichEckhardt 既然你坚持,更新我的帖子:)

标签: c++ multithreading qt


【解决方案1】:

线程亲和性对类数据有影响吗?

不,QObject 的线程亲和性仅控制其插槽和事件处理程序在哪个线程中运行。

类数据会变成线程数据吗?

类数据是指类静态数据成员——不可能受每个实例的线程亲和性影响。实例数据也不是以某种方式成为线程本地的:线程本地存储可能非常有限,根本没有理由强制每个实例都进入其中。

除了以上...

如果你不发出信号或事件,正常的方法调用只是方法调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2011-01-15
    相关资源
    最近更新 更多