线程类实例创建线程函数

时间:2013-04-02 14:37:55

标签: python

我有一个线程类,在其中,我想创建一个线程函数来与线程实例一起完成它的工作。有可能,如果是的话,怎么样?

线程类的运行函数正在每一个工作,兴奋地,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

如果不清楚,请告诉我。我会尝试重新编辑

2 个答案:

答案 0 :(得分:0)

启动另一个线程。您已经知道如何创建它们并启动它们,所以只需在您已经拥有的那个上写下Threadstart()的另一个次级。

使用def foo()而不是Thread更改run()子类的foo()

答案 1 :(得分:0)

首先,我建议您重新考虑使用线程。在Python的大多数情况下,您应该使用multiprocessing代替..这是因为Python的GIL 除非您使用JythonIronPython ..

如果我理解正确,只需在已打开的线程中打开另一个线程:

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 - 我刚刚开始