Thread-ID - how much could be?
Peter Otten
__peter__ at web.de
Thu Sep 11 18:02:50 EDT 2014
Ervin Hegedüs wrote:
> Hi Peter,
>
> thanks for the reply,
>
> On Thu, Sep 11, 2014 at 09:48:18PM +0200, Peter Otten wrote:
>> Ervin Hegedüs wrote:
>>
>> > Exception in thread Thread-82:
>> > ...
>> > My question is: how much thread ID could be totally? Is there any
>> > maximum number? And if the thread reached that, what will be
>> > done? Overlflowed? Couting from 0 again?
>>
>> A quick peak into threading.py reveals
>>
>> # Helper to generate new thread names
>> _counter = 0
>> def _newname(template="Thread-%d"):
>> global _counter
>> _counter += 1
>> return template % _counter
>>
>> class Thread:
>> ...
>> def __init__(self, group=None, target=None, name=None,
>> args=(), kwargs=None, *, daemon=None):
>> ...
>> self._name = str(name or _newname())
>>
>>
>> There is no upper limit to the thread name other than that you will
>> eventually run out of memory ;)
>
> thanks - I hope that the memory will not run out by these
> threads... :)
>
> Anyway, that means, on my system:
>
>>>> import sys
>>>> print sys.maxint
> 9223372036854775807
>
> the couter could be 9223372036854775807?
>
> And after? :)
Try it!
>>> print sys.maxint + 1
9223372036854775808
When you start one thread per second
>>> sys.maxint / (60*60 * 24 * 365.25)
292271023045.3132
after less than 300 billion years the only thing that will change is the
type:
>>> type(sys.maxint)
<type 'int'>
>>> type(sys.maxint + 1)
<type 'long'>
More information about the Python-list
mailing list