Определите максимальное количество потоков, работающих в разных системах Windows. - PullRequest
1 голос
/ 11 ноября 2011

Может кто-нибудь сказать мне, если есть способ узнать максимальное количество потоков, которые могут работать в разных системах Windows?

Например - (Предположение) 32-разрядная система Windows может работать максимум 4000резьб.

1 Ответ

1 голос
/ 12 декабря 2011

Я сомневаюсь, что существует максимальное количество. Ну, поскольку мы используем ограниченный объем памяти, это будет столько потоков, сколько вы можете вписать в память, или столько, сколько сможете отслеживать. Каждая система индивидуальна, и я знаю, что в Java и C нет функции, обеспечивающей это. C # может сказать вам, сколько памяти требуется конкретному объекту / приложению, чтобы вы могли рассчитать оценку.

Вы можете проверить это в своей системе. Напишите пример приложения, которое порождает потоки и видит, когда у вас заканчивается память. Используйте счетчик, чтобы сосчитать их. Это даст вам приблизительный диапазон для вашей системы.

В Java вы можете использовать ExecutorService с пулом потоков. В зависимости от того, какую службу исполнителя вы используете, она может создавать потоки, если вы отправляете больше заданий. Подобная техника существует в C #.

Лучший вопрос - каково максимальное количество потоков, порождаемое , чтобы избежать перебора .

Вы пытаетесь захватить ОС и сделать свое собственное управление процессами / потоками? Вы не должны делать это.

...