Show HN: Lightweight Threads, Channels and Actors for the JVM
blog.paralleluniverse.co
Show HN: Lightweight Threads, Channels and Actors for the JVM
1–10 of 56 posts
Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#2"Lightweight Threads, Channels and Actors for the JVM".
Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#3Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#4I didn't see anything in there about ensuring that the messages passed between actors are immutable. Did I miss it?
Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#5Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#6How does this work with garbage collection? Is the GC per-process ("fiber"), like in Erlang?
Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#7I didn't see anything in there about ensuring that the messages passed between actors are immutable. Did I miss it?
It's not enforced by Quasar, and Java, obviously can't ensure that, but in Clojure everything is immutable.
After enjoying the benefits of immutability and lightweight message passing, I'd hate to give up the former -- but if you're stuck with Java, I suppose all this is gravy.
Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#8How does this compare with http://code.google.com/p/jetlang/ ? How does this work with garbage collection? Is the GC per-process ("fiber"), like in Erlang?
The JVM's GC isn't per actor (I know actors are called processes in Erlang, but let's keep the nomenclature consistent), but its GC is extremely advanced, and some implementations work on a per-thread basis. The ramifications are that we can't offer the same level of isolation as Erlang, at least not on HotSpot. An actor could theoretically produce a particular kind of garbage that will cause a GC pause to the entire system. But other than isolation, the JVM is very performant (much more than Beam), and handles concurrency extremely well.
I don't understand your last question (on load distribution).
Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#9Earlier quoted context omitted.
It's not enforced by Quasar, and Java, obviously can't ensure that, but in Clojure everything is immutable.
Ah, thanks for the clarification, I missed that Quasar was aimed at Java, which threw me off. (Apparently I can't be expected to read the first sentence carefully.) After enjoying the benefits of immutability and lightweight message passing, I'd hate to give up the former -- but if you're stuck with Java, I suppose all this is gravy.
Re: Show HN: Lightweight Threads, Channels and Actors for the JVM
#10How does this compare with http://code.google.com/p/jetlang/ ? How does this work with garbage collection? Is the GC per-process ("fiber"), like in Erlang?
Jetlang doesn't offer lightweight-threads. It uses an event-driven processing of messages (like Akka), so fibers can't block and you can't do selective receives. The JVM's GC isn't per actor (I know actors are called processes in Erlang, but let's keep the nomenclature consistent), but its GC is extremely advanced, and some implementations work on a per-thread basis. The ramifications are that we can't offer the same…
I'm excited to see how you guys go about trapping errors and such, as you mention in the "next steps."
Thanks for answering my small questions.