Python Использование многопроцессорной обработки для методов того же класса
Мне нужна помощь с многопроцессорным модулем Python. Я использую Python3.6.6. Моя структура кода выглядит примерно так:
class ABC():
def __init__(self):
self.HOST = 'hostserver.com'
self.TCP_PORT = 0123
self.BUFFER_SIZE = 1024
self.SERVER_INFO = ""
self.SOCK = None
def connect_socket(self):
self.SOCK = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.SOCK.settimeout(1)
self.SOCK.connect((self.HOST, self.TCP_PORT))
self.SOCK.setblocking(True)
def recTask(self):
while True:
self.receive_data()
time.sleep(0.01)
def sendTask(self):
while True:
self.SOCK.sendall(bytes)
print("\n*Message sent*\n")
time.sleep(0.01)
if __name__ == '__main__':
Class_obj = ABC()
id = Class_obj.connect_socket()
ts = mp.Process(name='send_Process', target=Class_obj.sendTask())
ts.daemon = True
tr = mp.Process(name='rec_Process', target=Class_obj.recTask())
tr.daemon = True
tr.start()
ts.start()
ts.join()
tr.join()
Могу ли я вызвать методы одного и того же класса, используя объекты внутри процесса? Я хочу, чтобы 2 функции работали независимо друг от друга. Кроме того, когда я запускаю это, я просто вижу распечатанное "Сообщение отправлено". В функции receive_data() у меня есть print("Сообщение получено"), но оно никогда не печатается. Когда я комментирую код
ts = mp.Process(name='send_Process', target=Class_obj.sendTask())
ts.daemon = True
ts.start()
Я вижу, что "Сообщение получено" печатается. Есть что-то, чего мне не хватает?