Architecture 除了Erlang之外,还有哪些其他系统是基于;“绿色工艺”;?

Architecture 除了Erlang之外,还有哪些其他系统是基于;“绿色工艺”;?,architecture,erlang,system,green-threads,lightweight-processes,Architecture,Erlang,System,Green Threads,Lightweight Processes,我正在阅读上的这一信息页面,我想知道:除了Erlang之外,还有哪些编程系统依赖于“绿色进程” 编辑:“绿色线程”!=绿色流程 基于绿色工艺 二郎 地狱 基于绿色线程的 去 基于本地进程的 C、 C++ 更新:没有人直接回答这个问题,因此我接受了一个答案,该答案为我提供了有关绿色流程的更多信息。Java一直使用到1.2。。然后他们意识到,拥有一个调度两次的轻量级线程并没有那么有效。据我所知,这些“绿色进程”实际上与绿色线程没有本质上的区别。共享状态的缺乏源于语言设计,而不是任何技术或

我正在阅读上的这一信息页面,我想知道:除了Erlang之外,还有哪些编程系统依赖于“绿色进程”

编辑:“绿色线程”!=绿色流程

基于绿色工艺
  • 二郎
  • 地狱
基于绿色线程的
基于本地进程的
  • C、 C++

更新:没有人直接回答这个问题,因此我接受了一个答案,该答案为我提供了有关绿色流程的更多信息。

Java一直使用到1.2。。然后他们意识到,拥有一个调度两次的轻量级线程并没有那么有效。

据我所知,这些“绿色进程”实际上与绿色线程没有本质上的区别。共享状态的缺乏源于语言设计,而不是任何技术或巨大的概念差异。Erlang简单地说:

  • 没有可从多个进程访问的任何类型的全局变量
  • 仅允许通过显式消息在进程之间进行通信
  • 隐式复制消息参数(这种技术的最大缺点)
因此,两个进程无法访问相同的内存,即使它们可能在操作系统级别上共享虚拟内存(我想这会使Erlang更容易在没有操作系统级别线程的架构上实现)。

关于整个“绿色线程”的名称,请参阅:

更严重的是,我很惊讶地看到您使用了Java阵营中的一个术语,而不是像“用户空间协作线程”这样的术语;好人彼得·范德林登解释了这个词的起源:

当Java 1.0第一次出现在Solaris上时,它没有使用本机Solaris库libthread.so来支持线程。相反,它使用了运行时线程支持,该支持是为一个名为“Green”的早期项目用Java编写的。该线程库后来被称为“Green threads”


我希望我们可以使用操作系统中的术语,例如用户空间与线程的内核调度。毕竟,这是操作系统级别的区别。“绿色线程”这个名字只是Java历史。

现在,还有Rust(参见Rust-lang.org),它有一个用于N:M线程的模块和一个用于内核线程的模块。

你的意思是,除了你链接到的文章中提到的所有其他VM之外?这篇文章是关于绿色线程的。Erlang使用“绿色流程”。作者想知道其他哪些系统使用绿色进程。Java可运行对象是在ThreadPoolExecutor绿色进程中调度的吗?Java不再使用绿色线程,这是多年前放弃的。有些关联:@danben从概念上讲,绿色线程和轻量进程是一样的。@Vijay-它们不是。进程不共享状态,线程共享状态。”“绿色”进程不共享状态,绿色线程共享状态。没有共享状态在概念上有很大区别。那么为什么要麻烦使用不同的术语呢?概念上的差异有多大取决于您对共享内存线程的使用方式。我想如果您认为它非常重要,因为它使并发更容易,那么您可能希望通过使用不同的术语来强调差异。请注意,“绿色流程”这个术语实际上似乎不是官方的。我不知道。。。但话说回来,有很多事情我都不知道:-)谢谢!“轻质工艺”一词在“绿色工艺”中更为常见。