| > Wrong. Whether JVM implementations use green threads or system threads is an implementation detail. There are implementations for both cases. Obviously it is an implementation detail, and for any JVMs that support green threads (none of the major ones do), then it would be a different matter entirely. > You realize that many JVM implementations started with green threads in the early days and abandoned them not much later? There is a reason for that. Java was created in the mid-90s before every man and his dog was trying to solve the c10k problem on a $5/month VPS. Hardly surprising. > Wrong. I repeat, the underlying threading model does not necessarily enforce some style of API. But it does allow for it, or make it easy. Why do you think Scala has both blocking, and "event based" (loop/react) API's? > Since when are green threads the “new best thing ever!!!11!!”? Did I miss a memo here? Quite possibly, you must have been living under a rock if you haven't heard of callback hell in Node.js. Funny because Node was the coolest thing ever a couple of years back, how times change. > You know what? Wake me up when Go has fixed their broken scheduler. Until then, I just keep watching how the JVM embarrasses Go on pretty much every concurrency and scalability workload. Java has great MT concurrency. It's light-weight concurrency (NIO) is about as good or bad as any other event-based systems out there. What is lacks (my original comment) is the ability to write event-based code using a synchronous, blocking style (without callbacks). The only contenders there are Go, Haskell, and possibly some of the scripting language extensions (Python/Gevent, Perl/Coro). And if by "broken scheduler" you mean it's lack of preemption...then I would say rethink your design, you should be handing long-running jobs to a work queue anyhow. |