在进程内运行 erlang vm

发布于 2024-11-01 19:22:50 字数 172 浏览 0 评论 0原文

是否可以在进程内运行 erlang VM?

我问这个问题是因为我正在尝试使用一些使用 erl_nif 的代码,女巫确实非常酷,但我必须将信息发送回可能生成虚拟机的进程。我想到的唯一方法是创建一些 IPC 通信,例如管道或从 COUT 读取,但这需要某种协议,如果我可以直接从函数响应中调用我需要的内容,那就太酷了。

It's possible to run the erlang VM inside a process?

I'm asking this because I'm trying to use some code using the erl_nif, witch is very cool indeed, but I have to send information back to the process that could possibily spawn the VM. The only approach I've thinked is to create some IPC communication, like pipes or reading from COUT, but this imposes the need of some protocol, and would be cool if I could call what I need directly from the function response.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪意 2024-11-08 19:22:50

即使不提 Erlang VM 管理操作系统线程并具有事件循环,您希望它在不可预测的操作系统进程中运行时如何保持稳定和可预测?不,你不能在操作系统进程内运行 Erlang VM。

将 Erlang VM 视为操作系统:

  1. 在 Erlang 中编写所有代码;
  2. 使用 NIF/端口驱动程序 仅当您确实需要更快的速度时。但请注意 - 您现在处于“内核模式”!
  3. 使用 端口/Erl_interface/ C 节点 如果您有许多用其他语言编写的代码;

Even don't mention that Erlang VM manage OS threads and has event loop, how do you want it will be stable and predictable when running inside an unpredictable OS process? No, you can't run Erlang VM inside an OS process.

Think about Erlang VM as about operating system:

  1. Write all your code in Erlang;
  2. Use NIFs/Port drivers only if you really need more speed. But be aware - you're in "kernel mode" now!
  3. Use Ports/Erl_interface/C Nodes if you have many code written in some other language;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文