[Mono-devel-list] Mono on a multipocessor
alexc at majestic12.co.uk
Thu Apr 21 10:25:28 EDT 2005
Thomas Harning Jr. wrote:
>>Is there a reason for replication of such low thread limits from .NET?
>>It is PITA to change those programmatically
>>on Windows (non-portable), and I wonder how can same be done on Mono?
> The reason, I think, for this is that there shouldn't be too many threads spawned.
That not a good reason insofar as async IO is concerned: the whole idea
of having async IO is to support lots of
concurrent connections and 25 is nowhere near lots in my book. This
limit in .NET is a big PITA, particularly because they have
not provided programmatical way to change it (at least in v1.1, can't
speak for v2.0)
>Now... if you want to spawn more, than you could implement a
>more dynamic threadpool of sorts or just spawn an entirely new thread w/o ThreadPool.
No I can't, because I use async IO and its exact implementation details
are not under my control: its just fact of live that it uses
threads in .NET. I can't really see any way out since using blocking
sockets will require me to use threads (and probably run out
of them faster).
>One reason for this is that... you don't really gain too
>much by having 1000 threads all doing stuff at once...
Generally I would agree with you, but I know for fact that I gain better
performance using async IO (with sockets),
actual callbacks there don't do lots of work, so a single PC can support
lots and lots of async sockets: certainly over 100
I found a solution (hack really) to make .NET programmatically change
maximum limit of threads on Windows,
and on Mono I was under the impression that default limit was much
higher than that in "official" .NET. How can it be changed?
More information about the Mono-devel-list