我有一个线程类,在其中,我想创建一个线程函数来与线程实例一起完成它的工作。有可能,如果是的话,怎么样?
线程类的运行函数正在每一个工作,兴奋地,x秒。我想创建一个线程函数来执行与run函数并行的工作。
class Concurrent(threading.Thread):
def __init__(self,consType, consTemp):
# something
def run(self):
# make foo as a thread
def foo (self):
# something
如果没有,请考虑以下情况,是否可能,如何?
class Concurrent(threading.Thread):
def __init__(self,consType, consTemp):
# something
def run(self):
# make foo as a thread
def foo ():
# something
如果不清楚,请告诉我。我会尝试重新编辑
答案 0 :(得分:0)
启动另一个线程。您已经知道如何创建它们并启动它们,所以只需在您已经拥有的那个上写下Thread
和start()
的另一个次级。
使用def foo()
而不是Thread
更改run()
子类的foo()
。
答案 1 :(得分:0)
首先,我建议您重新考虑使用线程。在Python的大多数情况下,您应该使用multiprocessing代替..这是因为Python的GIL
除非您使用Jython或IronPython ..
如果我理解正确,只需在已打开的线程中打开另一个线程:
import threading
class FooThread(threading.Thread):
def __init__(self, consType, consTemp):
super(FooThread, self).__init__()
self.consType = consType
self.consTemp = consTemp
def run(self):
print 'FooThread - I just started'
# here will be the implementation of the foo function
class Concurrent(threading.Thread):
def __init__(self, consType, consTemp):
super(Concurrent, self).__init__()
self.consType = consType
self.consTemp = consTemp
def run(self):
print 'Concurrent - I just started'
threadFoo = FooThread('consType', 'consTemp')
threadFoo.start()
# do something every X seconds
if __name__ == '__main__':
thread = Concurrent('consType', 'consTemp')
thread.start()
该计划的输出将是:
并发 - 我刚刚开始使用FooThread - 我刚刚开始