From owner-freebsd-current@FreeBSD.ORG Sun Oct 29 09:05:12 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 B628916A40F; Sun, 29 Oct 2006 09:05:12 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0CD8643D58; Sun, 29 Oct 2006 09:05:11 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 72EDD46BD8; Sun, 29 Oct 2006 04:05:11 -0500 (EST) Date: Sun, 29 Oct 2006 09:05:11 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Julian Elischer In-Reply-To: <45442A35.2030803@elischer.org> Message-ID: <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> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Paul Allen , Lev Serebryakov , 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 09:05:12 -0000 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