Python:多线程和类

时间:2015-05-22 20:19:11

标签: python multithreading

我已将长时间运行的进程分成3个单独的类,以使某些内容具有可读性。所以我创建了第一个类的实例,它是一个Thread,然后在这个类中创建下一个类的实例。然后我调用这个类的方法,并在这个类中创建下一个类的实例。

所以它就是多米诺骨牌效应。

如果我使用这种方法,第二个和第三个对象是否会在与第一个对象相同的线程中运行(因为它是一个Thread对象?)。这对我来说很有意义,因为在Thread类中创建了第二个对象。

1 个答案:

答案 0 :(得分:0)

运行此

import threading
import os

class A:

    def run(self):

        print ("class: %s Thread: %s" % (self.__class__, threading.current_thread().getName()))
        b = B()
        b.run()

class B:

    def run(self):

        print ("class: %s Thread: %s" % (self.__class__, threading.current_thread().getName()))
        c= C()
        c.run()

class C:

    def run(self):
        print ("class: %s Thread: %s" % (self.__class__, threading.current_thread().getName()))

def main():

    print ("main function  Thread: %s" %  threading.current_thread().getName())
    a = A()
    a.run()

if __name__ == "__main__":

    print ("entry point  Thread: %s" % threading.current_thread().getName())

    t=threading.Thread(target=main)
    t.start()

打印

entry point  Thread: MainThread
main function  Thread: Thread-1
class: __main__.A Thread: Thread-1
class: __main__.B Thread: Thread-1
class: __main__.C Thread: Thread-1 

所以,如果我理解你的逻辑是正确的,答案是