Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.037 X-Spam-Evidence: '*H*': 0.93; '*S*': 0.00; 'yet.': 0.04; 'cpython': 0.05; 'pypy': 0.07; 'removes': 0.07; 'python': 0.11; 'concurrency': 0.16; 'fork': 0.16; 'ironpython': 0.16; 'subject:recursion': 0.16; 'threads,': 0.16; 'wrote:': 0.18; 'machine': 0.22; 'case.': 0.24; 'certainly': 0.24; 'subject:problem': 0.24; 'regardless': 0.24; 'together.': 0.24; 'looks': 0.24; 'header:In-Reply-To:1': 0.27; 'reporting': 0.29; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'probably': 0.32; 'running': 0.33; 'mac': 0.33; 'maybe': 0.34; 'subject:the': 0.34; 'knowledge': 0.35; "can't": 0.35; 'no,': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'shows': 0.36; 'performance': 0.37; 'e.g.': 0.38; 'version,': 0.38; 'to:addr :python-list': 0.38; 'pm,': 0.38; 'does': 0.39; 'sure': 0.39; 'to:addr:python.org': 0.39; 'release': 0.40; 'include:': 0.61; "you're": 0.61; 'different': 0.65; 'it!': 0.67; 'believe': 0.68; 'yes': 0.68; '26,': 0.68; 'normal.': 0.68; 'mistakenly': 0.91; 'imagine': 0.93; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=Bx6EuDQQwhFqbD3pk2cXRmkqqKTmuhSJNN5CSs4nKWo=; b=pqna54fzOTev+fQXy7vFhqdHOBiN2qKBopzWEEeZfwVTCMRb/ejQHhjKstxw2eYHOv zi9WrUyA+FiDBztmb46sWNzgcJOWrZV4xte9izQ2uWI71bQHGTEN3ziQF7BtaQirxXha ZHdeXf11BkEqUGC+nvsj0kD5UOaw2rRAjalcxl2lnEzNPV5HlvHaco9f9onZH3i24QZ8 TQoNPykjCcnXUfCS3gbFY59u3tpzps80DxDRMEUXcKmrVEeFaZyWz3q3DGl5Uu0iZSxz ARKTSTwuVN5l3KIz1U+6xpETnJD+TBdeabHJHyTOSsofmEGNqrN+Wzgt+RY1JqqdwEYA cVAA== X-Received: by 10.68.179.194 with SMTP id di2mr20904488pbc.214.1369596993471; Sun, 26 May 2013 12:36:33 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <074eac8a-1bc4-4fe0-afa9-1f52405f81d5@k3g2000vbn.googlegroups.com> References: <55942e65-e4a5-45fc-b2fc-ceb4020959dd@k4g2000vba.googlegroups.com> <074eac8a-1bc4-4fe0-afa9-1f52405f81d5@k3g2000vbn.googlegroups.com> From: Ian Kelly Date: Sun, 26 May 2013 13:35:52 -0600 Subject: Re: Solving the problem of mutual recursion To: Python Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 28 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1369596997 news.xs4all.nl 15863 [2001:888:2000:d::a6]:50351 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:46104 On Sun, May 26, 2013 at 12:13 PM, Peter Brooks wrote: > No, on a multi-core machine it's normal. The machine shows python > running multiple threads - and the number of threads change as the > program runs. Perhaps the OS/X implementation of python does allow > concurrency when others don't. It certainly looks like it! I'm pretty sure that CPython uses the GIL regardless of platform. And yes you can have multiple OS-level threads, but because of the GIL only one will actually be running at a time. Other possibilities include: 1) You're using a different implementation of Python that does not have a GIL, e.g. Jython or IronPython (well, probably not the latter). I believe PyPy also has a GIL-less version, although I don't think this is in the current release yet. 2) You're using a fork of CPython that removes the GIL. There are a number of these, but none to my knowledge that are able to maintain the performance of CPython for a single thread. 3) You're mistakenly looking at multiple Python processes that are running simultaneously and adding their usages together. 4) The utility you're using is reporting the process CPU usage incorrectly. 5) Maybe for some reason the Mac OS X build of CPython is using spin-locks in the GIL. I can't imagine why this would be the case.