类实例线程亲和性对其数据是不是有任何影响?
Posted
技术标签:
【中文标题】类实例线程亲和性对其数据是不是有任何影响?【英文标题】:Does a class instance thread affinity have any impact on its data?类实例线程亲和性对其数据是否有任何影响? 【发布时间】:2015-06-19 15:38:47 【问题描述】:我们从QThread知道documentation
QObject 实例被称为具有线程亲和性,或者说它存在 在某个线程中。当 QObject 接收到排队的信号或 发布的事件,插槽或事件处理程序将在线程中运行 对象居住在其中。
线程亲和性对类实例数据有影响吗?类数据会变成线程数据吗?
除了上述之外,我问的原因是因为我想在其构造函数中传递另一个类的指针/引用。如果我是面向对象的,我不会直接访问它的数据,但是如果我调用另一个类的成员函数,它也会在这个类的线程中调用吗?
【问题讨论】:
引用没有谈论类,而是谈论[类]的实例,这让我想知道你是否只是混淆了这两者。或者,您是否要引用类静态数据,它可以称为“类数据”而不是“实例数据”。 @UlrichEckhardt 我是指文档中的类对象实例,而不是类本身,我想我不想太罗嗦。 请去编辑你的问题,把它说清楚! @UlrichEckhardt 既然你坚持,更新我的帖子:) 【参考方案1】:线程亲和性对类数据有影响吗?
不,QObject 的线程亲和性仅控制其插槽和事件处理程序在哪个线程中运行。
类数据会变成线程数据吗?
类数据是指类静态数据成员——不可能受每个实例的线程亲和性影响。实例数据也不是以某种方式成为线程本地的:线程本地存储可能非常有限,根本没有理由强制每个实例都进入其中。
除了以上...
如果你不发出信号或事件,正常的方法调用只是方法调用。
【讨论】:
以上是关于类实例线程亲和性对其数据是不是有任何影响?的主要内容,如果未能解决你的问题,请参考以下文章