这是一个真正的问题。
我正在使用命名管道在进程/线程之间传输数据,但是这个数据类型为string,是否可以通过这种方式传递和对象?
无论如何都要传递一个物体?
我的问题如下:
我有一个线程导弹和一个过程世界。 世界接收导弹的位置并返回新位置的计算。
现在我通过从管道中的字符串写入获取信息来做到这一点。有没有办法将其作为对象或元组传递?
如果有人能帮助我,那就太好了! 感谢。
答案 0 :(得分:6)
您可以使用Marshal
模块通过字节流传递任意OCaml值。这是正确的,所以我建议你阅读Marshal section of the manual。主要的是它只传递值,而不是类型。因此,您的接收过程需要定义所传递对象的确切类型,并且您需要在接收器中明确指定类型。
除了在同一程序的副本之外,不能编组包含函数的值(包括OO样式的对象)。也许这适用于你的情况(因为你提到你有一个线程),但最好还是使用一个元组。
答案 1 :(得分:0)
将对象转换为JSON?在进程之间将数据作为JSON字符串传递?