运行时自由:Rust 的运行时系统和绿色线程模型已被完全移除,这将“hello world”的静态二进制文件大小减半,并为标准库中的低级 Hook 打开了大门。由 Aaron Turon 实现。
http://blog.rust-lang.org/2015/01/09/Rust-1.0-alpha.html
绿色线程模型的缺点是什么?
为什么 Erlang 这么快?
最佳答案
Erlang 使用带抢占的绿色线程。这是可能的,因为 Erlang 有一个 VM,它还允许很多其他的事情,比如代码热交换。但是带有 VM 的语言不适合系统编程,因为它们总是有一些恒定的开销,包括内存和处理能力。 Rust 是一种系统编程语言,因此它不能拥有重要的运行时系统。我还要补充一点,Erlang 并不快。例如,它在数值计算中是出了名的低效 - 参见 here .它的并发模型允许 I/O 操作的高吞吐量,但这是另一回事。
因此,为了以可行的方式支持绿色线程,语言必须具有某种运行时。在相应的 RFC 中概述了 Rust 中删除运行时的原因。 .简而言之,当时 Rust 中使用的运行时模型很难有效地工作并且很难改进,同时由于实现问题和 API 的一般约束而没有足够的好处,所以它被废弃了。据我所知,原则上没有什么能阻止某人为 Rust 编写基于线程的绿色运行时,只是还没有人这样做。
关于rust - 为什么 Rust 删除了绿色线程模型;缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29428318/