为什么 Rust 删除了绿色线程模型;缺点是什么?



运行时自由:Rust的运行时系统和绿色线程模型被完全删除,这将"helloworld"的静态二进制大小减半,并为进入标准库的较低级别钩子打开了大门。由Aaron Turon执行。

http://blog.rust-lang.org/2015/01/09/Rust-1.0-alpha.html

绿色线程模式的缺点是什么?

二郎为什么这么快?

Erlang使用带有抢占的绿色线程。这之所以可能,是因为Erlang有一个VM,它还允许许多其他事情,比如代码热交换。但是带有VM的语言不适合系统编程,因为它们在内存和处理能力方面总是有一些恒定的开销。Rust是一种系统编程语言,因此它不可能有一个重要的运行时系统。我还想补充一点,Erlang不是。例如,它在数值计算中是出了名的无效——见这里。它的并发模型允许I/O操作的高吞吐量,但这是另一回事。

因此,为了以可行的方式支持绿色线程,一种语言必须有某种运行时。Rust中运行时删除的原因在相应的RFC中进行了概述。简而言之,当时Rust中使用的运行时模型很难有效地使用,也很难改进,但由于API的实现问题和一般限制,它没有足够的好处,因此被废弃。据我所知,原则上没有什么能阻止某人为Rust编写基于绿色线程的运行时,只是还没有人这样做。

相关内容

  • 没有找到相关文章

最新更新