Re: Bound Threads (Re: Process vs Thread: what are the consequences?)
Kenneth P. Turvey wrote:
I hate to followup my own post, but I've been looking at this problem
again and I'm really just unhappy with how it works. Since this can so
easily be solved under Solaris, and Lew (I think?) mentioned that this is
all JVM dependent. I was hoping somebody could point me to a JVM that
runs under Linux that supports the -XX:UseBoundThreads option or something
similar. I want a 1:1 mapping between native threads and Java threads and
I just can't seem to get it.
Does anyone have any idea? (BTW, I checked IBM's JVM).
<http://developers.sun.com/solaris/articles/solaris_linux_app.html#threads>
which has a link to
<http://people.redhat.com/drepper/nptl-design.pdf>
However, it's apparently already out of date, as they claim,
This document is completely, utterly out of date when it comes
to descriptions of the limitations of the current implementation.
Apparently they've improved things since February, 2005.
Since Sun now uses NPTL on RedHat Linux, and NPTL maps user threads to kernel
threads 1:1,
Also on the Sun page:
Both Linux and the Solaris OS support the notion of binding a process or thread to a processor.
RedHat tells us that Sun JVMs since 1.4.2 map Java threads to NPTL threads:
<https://rhstack.108.redhat.com/articles/2006/09/18/java-performance-tuning-on-linux-with-andrew-oliver.html>
And this article tested the performance of Java using NPTL:
<http://www.amitysolutions.com.au/documents/NPTL_Java_threads.pdf>
None of these articles guarantee that Sun's implementation(s) map Java threads
to native threads 1:1. They do claim that they use native threads natively,
and that the implementation scales well to multiprocessor systems.
I'm finding my google-fu not quite strong enough to come up with a definitive
understanding of how Sun's JVMs use native threads, even on RedHat Linux,
which is the only one they document.
--
Lew