【发布时间】:2013-12-18 12:15:11
【问题描述】:
在this的文章中说: 一些 QObject 是可重入的,因此可以同时从多个线程中使用这些类。
我想一段可重入的代码也应该是线程安全的。
但是,同一篇文章继续说:
请注意,这些类被设计为在单个线程中创建和使用;在一个线程中创建对象并从另一个线程调用其函数并不能保证有效。
这不是矛盾吗?最后是什么意思?我可以安全地跨线程调用 QObject 函数吗?
我已复制以下文章的相关部分:
QObject 重入
QObject 是可重入的。它的大部分非 GUI 子类,例如 QTimer、QTcpSocket、QUdpSocket、QFtp 和 QProcess,也是可重入的,使得使用这些类成为可能 同时来自多个线程。请注意,这些类是 设计为在单个线程中创建和使用;创造 一个线程中的对象并从另一个线程调用其函数 不保证能正常工作。
【问题讨论】:
-
但是,据说有些QObjects是可重入的,使得多个线程同时使用这些类成为可能
-
使用类。不使用对象
-
@BeniBela:好吧,我不太明白其中的区别。
标签: c++ multithreading qt