[Mono-devel-list] Mono on a multipocessor

Alex Chudnovsky alexc at majestic12.co.uk
Thu Apr 21 15:36:55 EDT 2005


Gonzalo Paniagua Javier wrote:

>On Thu, 2005-04-21 at 16:44 +0100, Alex Chudnovsky wrote:
>  
>
>>I understand desire to have maximum compatibility with actual .NET, but 
>>surely having higher limits on number of threads is not something that 
>>would be bad? From what I understand Windows Socket IO uses Completion 
>>Ports (whatever it is) that are supposedly more efficient, if thats 
>>indeed the case, then I suppose Mono will need more threads available to 
>>make up for having less efficient socket IO?
>>    
>>
>
>There's are no threads from the threadpool blocking for IO. See
>http://www.mono-project.com/Article:IOChanges
>  
>
But if I were to redesign my application to use blocking IO for sockets 
instead of async IO, then, if I were to keep level of parallelism (and 
naturally I don't want to wait for one blocking call to complete to move 
to the other), I will have to create a thread for each of those blocking 
IO calls, thus still ending having to use plenty of threads.

 From what I understood blocking IO (at least for sockets) is done by 
actually using async IO and making artificial wait for its to finish and 
then return result, and therefore usage of number of threads should be 
as much or higher (more likely higher) than in async IO model that I use 
now.

 From here: http://www.mono-project.com/Article:ThreadPool_Deadlocks I 
understand that setting env var allows to change number of threads 
available, which is fine I suppose.

Alex



More information about the Mono-devel-list mailing list