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>