Ocaml:有没有办法在进程之间传递对象?

时间:2012-12-12 02:49:01

标签: multithreading ipc ocaml pipe

这是一个真正的问题。

我正在使用命名管道在进程/线程之间传输数据,但是这个数据类型为string,是否可以通过这种方式传递和对象?

无论如何都要传递一个物体?

我的问题如下:

我有一个线程导弹和一个过程世界。 世界接收导弹的位置并返回新位置的计算。

现在我通过从管道中的字符串写入获取信息来做到这一点。有没有办法将其作为对象或元组传递?

如果有人能帮助我,那就太好了! 感谢。

2 个答案:

答案 0 :(得分:6)

您可以使用Marshal模块通过字节流传递任意OCaml值。这是正确的,所以我建议你阅读Marshal section of the manual。主要的是它只传递值,而不是类型。因此,您的接收过程需要定义所传递对象的确切类型,并且您需要在接收器中明确指定类型。

除了在同一程序的副本之外,不能编组包含函数的值(包括OO样式的对象)。也许这适用于你的情况(因为你提到你有一个线程),但最好还是使用一个元组。

答案 1 :(得分:0)

将对象转换为JSON?在进程之间将数据作为JSON字符串传递?