KSE, libpthread & libthr: almost newbie question

Robert Watson rwatson at FreeBSD.org
Sun Oct 29 09:05:12 UTC 2006


On Sat, 28 Oct 2006, Julian Elischer wrote:

> Robert Watson wrote:
>> 
>> On Fri, 27 Oct 2006, Julian Elischer wrote:
>> 
>>> there is class of problems (e.g. some java programs) that have THOUSANDS 
>>> of threads, each representing an active aspect of some object. How do you 
>>> put an rlimit on that without either 1/ stopping the program from working 
>>> or 2/ allowing thousands of threads to exist but not screwing other users.
>> 
>> Does the JVM actually expose thousands of threads to the OS, or does it 
>> actually do its own M:N threading internally based on its execution model? 
>> My impression is the latter, exposing threads to the OS only when it needs 
>> them to consume kernel or CPU resources.
>
> I don't know the answer to that question, only that there is a class of 
> program style that uses this model.

FYI, last night following comments about the change away "green threads", I 
ran some simple tests with the 1.4.2 JVM.  It appears that, at least in my 
simple test cases, all threads created in the JVM are exposed to the OS. 
Typically this appears to be about n+8 to n+9 threads, where n is the number 
of threads created by the application itself, and 8/9 is the number created by 
the JVM.  I assume the variance of one is likely the garbage collector kicking 
in every now and then (or something along those lines).

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-current mailing list