gpt4 book ai didi

asynchronous - 同机 Erlang 通信

转载 作者:行者123 更新时间:2023-12-04 22:09:00 25 4
gpt4 key购买 nike

我需要以下问题的答案,以帮助了解我应该采取什么方法来与 Erlang 交互。 SMP UNIX 机器上的 AFAIK Erlang 使用多进程方法。在这种情况下,它应该执行相同的机器 IPC。

  • Erlang 是否为 UNIX 使用 UNIX 域套接字?
  • 它是否为 Windows 使用命名管道?
  • 如果它没有实现上面的两个构造——即,没有 Windows 的命名管道;它必须回退到 Windows 上的套接字。
  • 上面提到的原则是如何实现的,它们是使用面向消息的、每个 channel 的单线程、异步构造还是其他什么?
  • 如果我上面的推理是不正确的,它是否使用主子树和所有其他进程通过 master 间接通信?

  • -- 编辑 1 --

    Link到 erlang 二进制格式文档。

    普遍的共识是 Unix 域套接字优于 TCP/IP .我想我会尝试扩展 Erlang 以使用提供的更好的原语。我也强烈怀疑在 TCP/IP 事件循环中没有使用 epol 和 windows IOPC——我会在审核代码后发回。

    另一个 SO post这断言 Erlang 确实不支持 TCP 和 UDP 以外的任何东西。

    有两个用于通信的 Erlang 库 Erlang node -> c_node c_node -> Erlang_node

    Erlang module for sockets允许在 UNIX 下打开 Unix Dom 套接字。

    最佳答案

    作为对您原始问题和一些评论的评论:

  • 我是 非常当然,事实上我知乎 ,在节点内部,Erlang VM 不使用套接字或管道在(Erlang)进程之间进行通信。这将是荒谬的,完全违背轻量级(Erlang)进程间通信的基本 Erlang 原则。
  • 在 Erlang 节点之间,Erlang VM 使用 TCP/IP。从 Erlang 看到的语义和行为与节点内通信相同,在大多数方面它是完全透明的,涉及进程所在的节点。
  • 无论使用多少个内核和调度程序,也不管每个内核运行多少个调度程序,SMP 都不会改变这些基础知识。
  • 关于asynchronous - 同机 Erlang 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1861242/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com