> -- Илья Ермаков писал(а):
> Не вяжется, потому что потолок в системе - не на сами потоки, а, видимо, на хэндлы объектов ядра.А активные объекты кушают приличное количество хэндлов семафоров. Причем более одного на объект - еще и на каждый ожидающий объект, и т.п.Вот прикиньте это количество - и понижение потолка вполне объяснится.Я гарантирую одно - то, что в момент трепа 100 новый поток РЕАЛЬНО создать уже нельзя, CreateThread дает ошибку. А почему там он дает ошибку - нюансы поведения ОС.

Здесь пишут, что причина в банальной нехватке адресного пространства:
http://blogs.msdn.com/oldnewthing/archive/2005/07/29/444912.aspx

И говорят, что можно увеличить кол-во потоков до 13000 если использовать:
HANDLE h = CreateThread(NULL, 4096, ThreadProc, NULL,STACK_SIZE_PARAM_IS_A_RESERVATION, &id);

Попробуете на досуге в Active BlackBox?

P.S.
Но есть ложка дёгтя:
Windows 2000/NT and Windows Me/98/95:The STACK_SIZE_PARAM_IS_A_RESERVATION flag is not supported.