问题标签 [qthread]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - *** 检测到 glibc *** 双重释放或损坏(fasttop):
对 QByteArray 的 clear 调用会产生以下异常:
* 检测到 glibc * /home/yan/FPS2/FPS2:双重释放或损坏(fasttop):
0 ?? 1??
2 免费
3 QByteArray::clear()
4 FPSengine::getDatagrams
5 FPSengine::xmitData
6 FPSengine::getData
7 threadDatalog::run
8 ??
9 start_thread
10 克隆
11 ?? 0
这是一个 qt 错误还是与我的代码有关?我知道 QObjects 不是线程安全的(QT 定义不是多个线程调用同一个对象实例的同一个函数),但我的函数有互斥锁。即使经常调用相同的函数,我也很少收到此错误。PS 防止这种情况的一种方法是 env var MALLOC_CHECK_ 0
这个 url 涉及一个类似的问题,一些帖子似乎暗示它是由不兼容的 glibc 版本引起的。
multithreading - 关于QThread实现的问题
QThread 对象代表单个执行线程。但是操作系统线程是在创建 QThread 对象时创建的,还是在start()
调用方法时创建的呢?
我感兴趣的是我是否可以有几个 QThread 对象,操作系统会在返回start()
后创建线程并杀死它们run()
,然后我可以再次重用 QThread 对象。但是我不想在 QThread 对象不做任何事情时持有操作系统资源。
(作为记录,我知道 QtConcurrent 和 QThreadPool,不,在这种情况下它们不能满足我的需求)
multithreading - 在 QThread 中调用 QThread.exec() 方法是必要的吗?
我没有调用exec()
我的代码,但是timer
andQUdpSocket
工作正常。是exec()
用来等待一个event
继续吗?
更新:timer
正在工作,因为我没有调用moveToThread(this)
,QThread
这意味着它QThread
实际上仍然是main thread
. 至于QUdpSocket
我使用 polling functions
。所以它不需要与signals
.
提示:如果你需要做init
一些事情,这需要event loop
在你的 中QThread
,你可以delay
调用moveToThread
直到你不再需要signals
,这在程序加载时很实用。您也不需要在构造函数中调用它(run()
例如,您可以在内部调用它),只需将this QThread
指针复制到变量并call
使用指针在稍后/其他地方进行。
multithreading - 我可以在属于主线程的 QThread 中使用 waitForReadyRead 吗?
我有一个包含 QUDPsocket 的 QThread(套接字不是 QThread::run() 的本地成员,也许我应该从我正在阅读的内容中更改它)。这个 QThread 在我的 QMainWindow 类中实例化,即 GUI 线程(我没有调用移动到线程)。使用 waitForReadyRead 是否仍然安全,或者我是否绝对需要在 main.cpp 中实例化 QThread 或调用 moveToThread() 以使其成为线程安全的。我在以目前的方式调用 waitForReadyRead 时遇到间歇性双重免费异常(有时我在 3 分钟后几天都没有得到它)。
python - 发送自定义 PyQt 信号?
我正在通过制作一个简单的 Twitter 客户端来练习 PyQt 和 (Q) 线程。我有两个 Qthread。
主/GUI 线程。
Twitter 获取线程 - 每 X 分钟从 Twitter 获取数据。
因此,每隔 X 分钟,我的 Twitter 线程就会下载一组新的状态更新(Python 列表)。我想将此列表交给 Main/GUI 线程,以便它可以使用这些状态更新窗口。
我假设我应该使用信号/槽系统将“状态”Python 列表从 Twitter 线程传输到 Main/GUI 线程。所以,我的问题是双重的:
如何从 Twitter 线程发送状态?
如何在 Main/GUI 线程中接收它们?
据我所知,PyQt 默认只能通过信号/插槽发送 PyQt 对象。我想我应该以某种方式注册一个自定义信号,然后我可以发送它,但是我发现的关于这个的文档对于像我这样的新手来说非常不清楚。我订购了一本 PyQt 书,但它不会再过一周到货,我不想等到那时。:-)
我在 Ubuntu 上使用 PyQt 4.6-1
更新:
这是不起作用的代码的一个例子。首先,我尝试将信号(“newStatuses”,我刚刚编的一个名称)“连接”到 Main/GUI 线程中的函数 self.update_tweet_list:
然后,在 Twitter 线程中,我这样做:
调用此行时,我收到以下消息:
我搜索了 qRegisterMetaType() ,但没有找到任何我能理解的与 Python 相关的内容。
c++ - 我如何从 QWidget 和 QThread 继承?
我有这样的课
当我执行上述操作时,我收到有关连接信号的错误。The error says Reference to "connect" is ambiguous
. 有没有办法从两者继承?
谢谢
c++ - qapps 运行良好但断点有时会产生分段错误
我有一个 qApp,它仅在代码中插入断点(我可以将其放在不同的位置)并且仅在 4-5 个断点停止后才会生成分段错误。我的代码有问题还是这是一个 DBG 错误。该方法是 QThread 类的一部分。
基本上我所做的是我以 mandlebrot 为例,并在我的程序中有 3 个实例。所以程序看起来像一个主窗口,里面有 3 个 mandlebrot 小部件,一个接一个。GDB 是否可能不支持调试多次实例化的 qthread 子类,或者这样做是线程不安全的。我在运行时没有任何问题。
qt - 使用 Qt 每个线程一个计时器
我修改了 Qt 的广播发送器示例,使其具有十个线程,并且在每个线程中启动一个计时器,但仅触发第一个线程的计时器。如何为每个线程运行一个计时器?
multithreading - Is it safe to draw three separate QImages in three separate QThreads?
I have a QMainWindow with three widgets inside that are promoted to a class containing a subclassed QThread. They each draw on a local QImage in their rexpective qthread which is sent with a signal once its drawn and then rendered by calling update (mandlebrot example) from the slot. Is this safe or dangerous? They do not share any data, at least none that I am generating and am wondering what data they could be sharing that is outside of my coding range ie that is generated by Qt automatically.
c++ - QThread 阻塞主应用程序
我有一个简单的表单 UI,它有一个按钮插槽,启动一个线程:
run() 方法如下所示:
当我单击调用 LoadImage() 的按钮时,UI 变得无响应。我定期将“ping”消息视为调试输出,但 UI 挂起,不响应任何内容。为什么我的线程没有单独运行?CameraThread 派生为公共 QThread 我正在使用 gcc 版本 4.4.3 (Ubuntu 4.4.3-4ubuntu5) 以及来自 Ubuntu 10.04(x86) 存储库的 QT 库和 QT Creator。