在调用另一个脚本后立即使父脚本继续

时间:2016-03-16 11:47:06

标签: python python-2.7 class object exit-code

我正在使用Python 2.7。

class Client():

    def __init__(self, host, server_port):
        """
        This method is run when creating a new Client object
        """

        self.host = 'localhost'
        self.server_Port = 1337

        # Set up the socket connection to the server
        self.connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.receiver = None
        self.myParser = MessageParser()

        # TODO: Finish init process with necessary code
        self.run()

    def run(self):
        self.connection.connect((self.host, self.server_Port))
        self.receiver = MessageReceiver(self, self.connection) #On this line, a MessageReceiver object is instantiated.
        self.take_input()


class MessageReceiver(Thread):

    def __init__(self, client, connection):
        super(MessageReceiver, self).__init__()

        self.myClient = client
        self.connection = connection

        self.daemon = True
        self.run()

    def run(self):
        self.myClient.receive_message(self.connection.recv(1024)) #This line blocks further progress in the code.

当Client对象中的run-method实例化MessageReceiver对象时,我希望Client中的下一行代码能够立即执行,而无需等待MessageReceiver的退出代码。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:4)

self.run()

请致电start()run()在当前线程中执行run方法。 start()旋转另一个线程并在那里调用它。

self.start()
相关问题