python-3.x - 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()
我可以使用进程中的对象调用同一类的方法吗?我希望这两个功能彼此独立运行。此外,当我运行它时,我只看到正在打印“已发送消息”。在 receive_data() 函数中,我有 print("Message received") 但它从不打印。当我评论代码时
ts = mp.Process(name='send_Process', target=Class_obj.sendTask())
ts.daemon = True
ts.start()
我看到正在打印“收到消息”。有什么我想念的吗?
解决方案
推荐阅读
- r - 如何添加一个名为“moneyness”的变量,当没钱时取 TRUE,否则取 FALSE?
- scala - 为Dataframe中的每一行执行API调用(scala)
- amazon-web-services - AWS Step Function ContainerOverrides 清除已定义的环境变量
- c# - 使用动态运算符过滤键值对
- php - 创建项目 Laravel 安装失败
- python - 我不能使用 pyautogui
- python - 如何将 epsg:6991 以色列网格转换为 epsg:4326 wgs 84 python
- c++ - 当我将 unsigned char*(UIImage bytes) 转换为 GLuint(textureId) 时,使用 opengles 并调用 c++ 方法来处理它,但结果为 null
- r - 使用支持向量机训练垃圾邮件分类器
- bash - 尝试使用 awk 和 sed 替换 bash 中的一行时出错