Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Oct 2006 10:21:08 -0800
From:      Greg Lewis <glewis@eyesbeyond.com>
To:        Robert Watson <rwatson@freebsd.org>
Cc:        Paul Allen <nospam@ugcs.caltech.edu>, Lev Serebryakov <lev@freebsd.org>, Julian Elischer <julian@elischer.org>, current@freebsd.org
Subject:   Re: KSE, libpthread & libthr: almost newbie question
Message-ID:  <20061029182108.GA46604@misty.eyesbeyond.com>
In-Reply-To: <20061029090309.T27107@fledge.watson.org>
References:  <917908193.20061027102647@serebryakov.spb.ru> <20061027103924.F79313@fledge.watson.org> <45426071.7020403@elischer.org> <602423478.20061028001449@serebryakov.spb.ru> <4542896D.1050001@elischer.org> <20061027231642.GJ30707@riyal.ugcs.caltech.edu> <45429703.8070305@elischer.org> <20061028104741.Q69980@fledge.watson.org> <45442A35.2030803@elischer.org> <20061029090309.T27107@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Oct 29, 2006 at 09:05:11AM +0000, Robert Watson wrote:
> 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).

If you really want to know, just send the running process a SIGQUIT and
it will dump the currently running threads to stdout.  But yes, 1.4 and 1.5
both use "native" threads which correspond 1:1 with OS threads (plus
there are threads the JVM creates itself, as you note).  The JVM threads
include garbage collection and AWT event handlers at least.

-- 
Greg Lewis                          Email   : glewis@eyesbeyond.com
Eyes Beyond                         Web     : http://www.eyesbeyond.com
Information Technology              FreeBSD : glewis@FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061029182108.GA46604>