我正在构建一个小型串行监视器。它基于两个主要类:SerialSender和SerialListener。这些运行无限循环,因此它们应该放在它们自己的线程中。
有一个最小的代码可以重现我的程序错误的组合:
sender = SerialSender()
listener = SerialListener()
sender_thread = QThread()
listener_thread = QThread()
sender.moveToThread(sender_thread)
listener.moveToThread(sender_thread)
print("Main thread is: {mt}\n"
"Sender thread is: {st}\n"
"Listener thread is: {lt}".format(
mt = int(QThread.currentThreadId()),
st = int(sender.thread().currentThreadId()),
lt = int(listener.thread().currentThreadId()))
使用此代码,我们可以期望有三个不同的线程ID,但我得到:
Main thread is: 139968246126400
Sender thread is: 139968246126400
Listener thread is: 139968246126400
这是从哪里来的?