Further comments

        Having large amounts of blocked threads is not an issue just a waste of
resources. A pool is more resource effecient with a very minor overhead  ~
10 ms ( 15 ms on a multi processor machine) .
Again if you need finer granularity dont use a managed environment.

        As Ian mentiones switch time is again the issue - on a PC architecture  it
is very hard to do this in less than 300 micro seconds. NT and multi
processor machines are much worse . To cope with this worse time - multi
processor machines on NT have a timeslize of 15ms nstead of 10ms.  ( 2
processor I have not checked it on bgger machiens) . As you get less
switches.
        If you are processor bound threads will interupt a currently running thread
this may be a bad idea as the switch causes overheads - fewer threads mean
more blocking but higher efficiency.

        It is an issue having large amounts of threads per process. Everytime a
process calls gets current active thread I bet you a linear search happens.

        Also regarding the UNIX discussion  - Unix threads are closer to NT fibres
( light weight threads) also their processes are lighter than NT hence
developers use a lot more.

Ben

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to