Maximum number of threads

Marc Schütz via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Sep 24 04:31:02 PDT 2015


On Thursday, 24 September 2015 at 08:55:25 UTC, Alex wrote:
> This should be a not so long question to answer, I hope.
>
> I took an example from the "Programming in D" book, chapter 
> "Message Passing Concurrency", around page 550. The question of 
> interest was, how many threads I can have spawned at the same 
> time.
> So I made an array of robot objects from the example and found 
> out: the maximum number is different on different PCs I have.
> For example:
> - on my mac I can have 2048 threads spawned at the same time
> - on my linux machine the maximum number is 32192.
> The numbers are quite fixed, however there were some small 
> fluctuations on the linux machine.
>
> The questions still remains: how do I know, what maximum number 
> of threads I can have? Is it possible to calculate this value 
> during runtime of my program? The two machines I have available 
> for testing are very different, what is the main parameter 
> which controls the number of possible threads? (CPU maybe? 
> Number of cores? RAM is not I think at the moment...)
>
> Thanks in advance
> Alex

 From the numbers (2048 = 2^11, 32192 = ca 2^15), it's clear that 
you're not running out of memory, but that these are artificial 
limits imposed by the OS.

This stackoverflow answer describes the situation on Linux:
http://unix.stackexchange.com/a/47600/34768


More information about the Digitalmars-d-learn mailing list