我有一个情况,我需要启动两个线程一个接一个。我尝试了以下代码片段,在这里我可以启动Thread12,但不能启动Thread2。我怎样才能开始两个......?如何启动两个线程一个接一个...?
代码片段
class Thread1(QtCore.QThread):
Thread1Signal = QtCore.pyqtSignal(str)
def __init__(self):
super(Thread1, self).__init__()
def run(self):
print 'Thread1 started'
While True:
#some statments
if Condition:
Thread1Signal.emit('Yes')
else:
Thread1Signal.emit('No')
class Thread2(QtCore.QThread):
Thread2Signal = QtCore.pyqtSignal(str)
def __init__(self):
super(Thread2, self).__init__()
def run(self):
print 'Thread2 started'
While True:
#some statments
if Condition:
Thread2Signal.emit('Yes')
else:
Thread2Signal.emit('No')
class MainClass(QtCore.QObject):
MainSignal1 = QtCore.pyqtSignal(str)
MainSignal2 = QtCore.pyqtSignal(str)
def __init__(self):
super(MainClass, self).__init__()
Threadinstance1 = Thread1()
Threadinstance1.Thread1Signal.connect(MainSignal1)
Threadinstance2 = Thread2()
Threadinstance2.Thread2Signal.connect(MainSignal2)
def start(self):
Threadinstance1.start()
Threadinstance2.start() #Thread2 never starts.
def signal1called(s):
print s
def signal2called(s):
print s
if __name__=='__main__':
app = AtGui.QApplication(sys.argv)
temp = MainClass()
temp.MainSignal1.connect(signal1called)
temp.MainSignal2.connect(signal2called)
temp.start()
sys.exit(app.exec()_)
您将使用QRunnable
和QThreadPool
,如下所示:
import sys
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QThreadPool, QObject, QRunnable, pyqtSignal
class WorkerSignals(QObject):
result = pyqtSignal(int)
class Worker(QRunnable):
def __init__(self, task):
super(Worker, self).__init__()
self.task = task
self.signals = WorkerSignals()
def run(self):
print 'Sending', self.task
self.signals.result.emit(self.task)
class Tasks(QObject):
def __init__(self):
super(Tasks, self).__init__()
self.pool = QThreadPool()
self.pool.setMaxThreadCount(1)
def process_result(self, task):
print 'Receiving', task
def start(self):
for task in range(10):
worker = Worker(task)
worker.signals.result.connect(self.process_result)
self.pool.start(worker)
self.pool.waitForDone()
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
main = Tasks()
main.start()
sys.exit(app.exec_())
下面是
我正在尝试使用Spring Batch和Spring Task Scheduler运行两个作业,而不考虑它们的调度时间。这两个作业(Tasklet)在不同的时间间隔执行不同的作业。 以下是springConfig。xml文件: 以下是CouPonTougleActivationScheduler和OTPJobScheduler的实现: @enableSched调度公有类CouPonTougleAc
问题内容: 是否可以同时在两个不同的元素上运行两个动画?我需要与此问题相反的Jquery排队动画。 我需要做这样的事情… 但要同时运行这两个。我唯一想到的就是为每个动画使用一次,但是我认为这不是最好的解决方案。 问题答案: 就在这里!
我的应用程序在两个jboss版本jboss 4和jboss 7之间扩展。Jboss 4 intance正在通过eclipse运行。当我尝试通过[Jboss_HOME]/bin/standalone.bat运行Jboss 7时,它不会启动,并显示以下错误。 调用"C:\jboss as-7.1.1。最终\bin\standalone.conf.bat"警告JBOSS_HOME可能指向不同的安装-可能
问题内容: 因此,我的目标是让函数启动自己的线程,以便可以并行运行,而不必等待上一个线程完成。问题在于,它似乎不是多线程的(意味着一个线程在另一个线程开始之前就完成了)。 我也有该函数的内部,但似乎启动的线程的标识与从其运行python脚本的主线程相同。我认为我的方法不正确。 问题答案: 这是常见错误,容易出错。 只需在主线程中一次执行您的函数,然后将(我想为您函数的返回值)作为函数传递给线程,这
本文向大家介绍Java实现的两个线程同时运行案例,包括了Java实现的两个线程同时运行案例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现的两个线程同时运行。分享给大家供大家参考,具体如下: 运行结果: 更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作