Tony Arcieri wrote in post #1067715:
> You're right, there is no debate! Pretty much all major virtual machines
> have moved from green threads to native threads.

Perhaps it depends on the definition of what is "major."  I won't get 
into that, everybody has their own definition I guess.  But all 
Smalltalk VMs I am aware of still use green threads.  Smalltalk VM is 
state of the art and has been developed for decades, so I don't see how 
it couldn't be considered "major."

From Cincom website:

http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=what_can_smalltalk_do

"A single Smalltalk process (image) runs in the context of one operating 
system process, using a single OS level thread. Within that process, you 
can manage an arbitrary number of lightweight (green) threads..."

I have used green threads on Haskell (GHC).  Unless something has 
changed, it still has them.  It also has other threading models, but I 
don't believe they removed green threads in order to have the other 
threading models.

Erlang processes are still green.

> There are still systems
> that offer M:N userspace "microthreads" to N native thread schedulers,
> such
> as Erlang and Go, but these are different from green threaded systems
> which
> eschew use of native threads entirely and attempt to emulate them
> entirely
> in userspace.

Erlang processes are entirely "green," in the same way that a green 
thread is "green."  Yes, nowadays they can be mapped to 'real' threads 
running on multiple cores, and that's a good thing.  But they are still 
green.  My crappy notebook can spawn in the hundreds of thousands a 
second.  Each one takes up a ridiculously small amount of memory.  I can 
have millions of the things running in just a few lines of code (latest 
version of Erlang, btw).

Here's the wikipedia entry for green threads.  It lists the systems I 
listed above, and more:  http://en.wikipedia.org/wiki/Green_threads

I'm not trying to "have the last word" here, just saying that it seem to 
me some 'major' VMs still use green threads or processes.  You are free 
to disagree, and if you want the last word, go for it.

-- 
Posted via http://www.ruby-forum.com/.