<story><title>No More Callbacks: 10,000 Actors, 10,000 Threads, 10,000 Spaceships</title><url>http://blog.paralleluniverse.co/post/64210769930/spaceships2</url></story><parent_chain></parent_chain><comment><author>ChuckMcM</author><text>Nice exemplar. Back when Java was being created, James Gosling was pretty insistent that concurrency be lightweight and scalable. When I ported it from SunOS 4 so Solaris 2.0 I had to move from the really light weight setjump()&amp;#x2F;longjmp() threads that he had implemented, into the thread system that Solaris had defined. There was a huge negative impact on performance (as I recall about 15x slower). That sucked because one of the coolest demos at the time had a little world in it where &amp;#x27;Fang&amp;#x27; (the Java mascot) lived and a bunch of things in that world were all animated with threads. Looking at the &amp;#x27;fiber&amp;#x27; model for threads I think they are much closer to what we should have done in the first place.&lt;p&gt;The thought was to have a billion threads on a SPARCStation 10 (that is like an old Pentium machine now). We never got close but it was a great goal. Definitely going to have to go back and revisit this topic now. Thanks for the excellent demo to play with!</text></comment>
<story><title>No More Callbacks: 10,000 Actors, 10,000 Threads, 10,000 Spaceships</title><url>http://blog.paralleluniverse.co/post/64210769930/spaceships2</url></story><parent_chain></parent_chain><comment><author>CookWithMe</author><text>My first thought was &amp;quot;why don&amp;#x27;t they use Akka&amp;quot;?&lt;p&gt;&amp;gt; Akka has no true lightweight threads (the actors are actually callbacks)&lt;p&gt;Would you care to elaborate? I&amp;#x27;m not too familiar with the internals of Akka, but they definitely don&amp;#x27;t use &amp;quot;heavyweight&amp;quot; threads (which I assume are threads that are 1:1 mapped to OS threads).&lt;p&gt;Also, I didn&amp;#x27;t get &amp;quot;the actors are actually callbacks&amp;quot;. Yes, there may be callbacks involved internally (why not?), but there is a big difference whether I am sending a message to an actor (which may be processed at any time) vs. calling a callback (which is immediately executed on the very same thread that I&amp;#x27;m running on).&lt;p&gt;Sorry if this sounds dismissive, but I&amp;#x27;d really like to learn why you choose to implement your own solution, because you&amp;#x27;ve obviously put some time into evaluating what is out there.</text></comment>