Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Robert Klemme Newsgroups: comp.lang.java.programmer Subject: Re: thread pool with CachedThreadPool Date: Wed, 16 Apr 2014 17:55:37 +0200 Lines: 36 Message-ID: References: <12vmb157ulwwb.1cmusyz7wuuyi$.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net 6li7otCFrODTdMkqBXZgDAQI/dWNIE4b3WmT6SC6CT0gRAg6c= Cancel-Lock: sha1:HaNJ0XgSvxb+1HFTzGob+cqA+tA= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 In-Reply-To: Xref: csiph.com comp.lang.java.programmer:28105 On 16.04.2014 12:42, Josip Almasi wrote: > On 04/16/2014 08:43 AM, Robert Klemme wrote: >> On 16.04.2014 00:05, Daniel Pitts wrote: >> >>> "Threads" with nothing to do take up very little CPU. They may take up >>> memory or other resources, but they can be made to do nothing until >>> called for. >> >> What do they take CPU for other than that negligible amount of time the >> kernel takes for administering them? I'd say for all practical purposes >> you can assume a blocked thread to take up zero %CPU. Or am I missing >> something? > > Blocked thread itself spends no cpu time. > Running thread may spend some more cpu time though, for lock checks. > Real issue is flushing pipeline to ensure cache coherency among all cpu > cores. > So, more 'synchronized' statements your single running thread > encounters, more cpu stalls. It's not really 'taking' cpu time, it's > wasting it. I don't think this applies. We were talking about threads idling in the pool. > I have to admit, intel pipeline is complete mistery to me:) > But that's why have atomics and other non-blocking thread-safe magic. The straightforward implementation will block them so there is no CPU consumption. Custom implementations of thread pools may employ spin locks but that usually is only done if you expect to always have work for all threads. Cheers robert