【问题标题】:Ocaml: It there a way to pass objects between processes?Ocaml:有没有办法在进程之间传递对象?
【发布时间】:2012-11-29 16:48:09
【问题描述】:

这是一个真正的问题。

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

有没有办法传递一个对象?

我的问题如下:

我有一个线程导弹和一个进程世界。 World 接收到导弹的位置并返回新位置的计算结果。

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

如果有人能帮我解决这个问题,那就太好了! 谢谢。

【问题讨论】:

    标签: multithreading ipc ocaml pipe


    【解决方案1】:

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

    包含函数的值(包括 OO 样式的对象)只能在同一程序的副本之间进行编组。也许这适用于您的情况(因为您提到您有一个线程),但无论如何使用元组可能会更好。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-13
        • 2021-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-12
        相关资源
        最近更新 更多