NIF 实现可以使用常规的 C/C++ 线程锁定原语还是必须使用 NIF API(enif_mutex_lock(..), enif_mutex_create(..),
等)
问问题
437 次
1 回答
2
来自nif 文档
线程和并发
NIF 是线程安全的,没有任何显式同步,只要它充当纯函数并且只读取提供的参数。一旦您通过静态变量或 enif_priv_data 写入共享状态,您就需要提供自己的显式同步。这包括在线程之间共享的进程独立环境中的术语。如果您将资源对象视为可变的,它们也将需要同步。
所以没有什么能阻止你做任何你想做的事。您可以轻松地编写自己的互斥体/信号和什么不。你可以用 C 或 C++ 或 Rust 来做。
也就是说,没有什么可以阻止一切。如果你破坏任何东西,你就会在整个虚拟机中破坏它。我会尝试使用标准的 Erlang 做事方式,尤其是在处理线程时。这些是经过验证的方法,我还没有找到任何理由用其他方法替换它们。
于 2014-11-06T11:06:50.353 回答