这更多的是一个假设性的问题;我在一个程序上遇到了一些问题,我想知道这是否可能是因为多线程。
我有一个主线程和一个辅助线程。工作线程通过串行端口与机器通信,当它接收到来自机器的输出时,它会发出Pyqt信号。在主线程中有一个插槽,它接收信号,并处理输出。处理是一个漫长的过程,其中包括从输出创建另一个对象。
如果工作线程在第一个输出完成处理之前调用主线程两次,会发生什么?
发布于 2016-07-26 22:40:31
当你的主线程正在执行一个长任务(源自一个事件)时,它不会处理任何新的事件。所有新事件将在特定于线程的队列中排队,并将在稍后执行事件循环时进行处理。如果目标线程处于休眠状态,则新事件将被排队,并且该线程将被唤醒以处理该事件。
您可以阅读The Event System上的文档。
https://stackoverflow.com/questions/38592576
复制相似问题