From owner-freebsd-current@FreeBSD.ORG Sun Oct 29 18:21:28 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 65D5216A403; Sun, 29 Oct 2006 18:21:28 +0000 (UTC) (envelope-from glewis@eyesbeyond.com) Received: from misty.eyesbeyond.com (gerbercreations.com [71.39.140.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id C942F43D55; Sun, 29 Oct 2006 18:21:27 +0000 (GMT) (envelope-from glewis@eyesbeyond.com) Received: from misty.eyesbeyond.com (localhost.eyesbeyond.com [127.0.0.1]) by misty.eyesbeyond.com (8.13.1/8.13.3) with ESMTP id k9TIL9WD051470; Sun, 29 Oct 2006 10:21:10 -0800 (PST) (envelope-from glewis@eyesbeyond.com) Received: (from glewis@localhost) by misty.eyesbeyond.com (8.13.1/8.13.3/Submit) id k9TIL9gD051469; Sun, 29 Oct 2006 10:21:09 -0800 (PST) (envelope-from glewis@eyesbeyond.com) X-Authentication-Warning: misty.eyesbeyond.com: glewis set sender to glewis@eyesbeyond.com using -f Date: Sun, 29 Oct 2006 10:21:08 -0800 From: Greg Lewis To: Robert Watson Message-ID: <20061029182108.GA46604@misty.eyesbeyond.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20061029090309.T27107@fledge.watson.org> User-Agent: Mutt/1.4.2.2i Cc: Paul Allen , Lev Serebryakov , Julian Elischer , current@freebsd.org Subject: Re: KSE, libpthread & libthr: almost newbie question X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Oct 2006 18:21:28 -0000 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