I agree with Charlie about microthreads being baked in to the VM and
the JDK.

I explored the possibility (for Kilim) of making Thread m:n again, but
switching stacks and growing them dynamically is a pain in Hotspot.
The Capriccio project from Berkeley grows the stack at run-time, but
depends on a static analysis to figure out where to put the check to
grow the stack dynamically.

I am now beginning to explore a more interesting alternative (seen in
Kilim), where the  user-level thread and the kernel thread schemes
have a loose coupling that is exposed to the programmer. This permits
finer grained control over the mapping of m to n and how the tasks are
scheduled.  Maintaining cache affinity is important for some
applications and you don't want to make a thread jump around.

So, in Kilim, a Scheduler manages a thread pool, and you can have many
independent schedulers. A task belongs to a scheduler at any point in
time. (By default, there's one scheduler and one thread pool)

You can of course write your own scheduler. This is good for writing
simulators (JIST-style) that can schedule tasks according to a logical
clock.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to jvm-languages@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to