Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maximum thread limit?

Where can I find documentation on the maximum number of threads allowed in an iPhone application, and what are your experiences with thread performance?

Thank you!

like image 545
Kevin Rood Avatar asked Sep 19 '09 01:09

Kevin Rood


People also ask

Is there a limit on number of threads?

The maximum threads setting specifies the maximum number of simultaneous transactions that the Web Server can handle. The default value is greater of 128 or the number of processors in the system. Changes to this value can be used to throttle the server, minimizing latencies for the transactions that are performed.

Is there a thread limit discord?

These roles must have less than 100 members each, and only 10 roles can be mentioned per message. Threads also only allow 1,000 members to be added to them.

What is the maximum number of threads in Java?

Each JVM server can have a maximum of 256 threads to run Java applications. In a CICS region you can have a maximum of 1024 threads. If you have many JVM servers running in the CICS region, you cannot set the maximum value for every JVM server.

What is the maximum number of threads in C++?

unsigned int numThreads = std::thread::hardware_concurrency(); This returns the total number of supported concurrency. Hence, if we have 2 CPUs each of which can support 12 threads, numThreads will be equal to 24.


2 Answers

This page on the Mac Dev Center gives you thread allocation costs, which you can make an estimated guess from:

1kb kernel cost
1mb stack space on iPhone
Creation time 90 microseconds

The guide suggests you will be asking the OS to allocate your app 50mb of 128mb of ram if you spawn 50 threads:

The space for this memory is set aside in your process space at thread creation time, but the actual pages associated with that memory are not created until they are needed

That seems like a large amount - and this blog post goes in some detail in saying that if you're trying to use over 46mb of ram your app will freeze, and then be killed 5-10 seconds later by the OS.

So really 15-20 threads is a safe amount to stick to, but of course that depends on how much memory each thread is consuming in the operations it performs, and also how fast the thread completes. The memory is deallocated once the thread finishes.

like image 170
Chris S Avatar answered Sep 24 '22 03:09

Chris S


I'm afraid I can't point you to any relevant documentation. But you need to keep in mind that the iPhone is a resource constrained device, so you probably want to pretty conservative with spawning new threads. I would try not to go over a handful of threads myself. Still, I'd be curious to hear what the actual limit is.

like image 33
Mirko Froehlich Avatar answered Sep 23 '22 03:09

Mirko Froehlich