erl_nif_thread和 erlang 进程通信



我们可以与创建的线程和正常的 erlang 进程erl_nif通信吗?我们可以使用 nif_send 将消息从 nif 线程发送到 erlang 进程,但是 nif 线程可以像普通 erlang 进程一样从任何 erlang 进程接收消息吗?

不,使用 enif_thread_create 创建的线程不是 Erlang 进程,无法接收消息

您可能试图用 NIF 实现太多目标,可能会考虑编写一个链接的驱动程序,它可以发送消息并从 Erlang 接收消息。

或者,您可以在本机线程中使用条件变量和/或管道来等待在收到预期消息时从模拟器调用的 NIF 函数生成的事件。实际上,与驱动程序中的链接不同,您无法使用模拟器中的选择接口。

相关内容

  • 没有找到相关文章

最新更新