Python Multiprocessing:如何传递对象?

问题描述 投票:0回答:1

我正在使用多重处理来运行“启动”功能,这是负责从串行端口读取数据的责任。但是,我读完书后无法关闭端口的问题是,因为我不知道如何将“ s”对象传递给主程序。所以我的问题是:1-我如何将“ s”对象传递给“停止”功能。2- bring_data.terminate()解决问题了吗? 换句话说,它也破坏了“开始”功能内部的对象吗? (所以也许我可以重新创建对象,然后使用它关闭端口)这是程序的一部分:

def start(x ,y ,z) :
    # creat object s :
    s = serial.Serial()
    s.baudrate = 115200
    s.port = 'COM4'
    s.open()
    print("the port is opened")

def stop(obj) :
    obj.close()
    print("the port is closed")

if __name__ == "__main__" :
get_data = mp.Process(target = start , args = ( x, y ,z ))
get_data.start()
#?????????????
stop(obj)
python multithreading object serial-port instance
1个回答
0
投票

[显然,是的,确实bring_data.terminate()正在破坏函数内的所有对象,包括“ s”对象,并且端口最终关闭。这不是一个理想的解决方案,但它会尽力而为。

© www.soinside.com 2019 - 2024. All rights reserved.