Я сомневаюсь, что существует максимальное количество. Ну, поскольку мы используем ограниченный объем памяти, это будет столько потоков, сколько вы можете вписать в память, или столько, сколько сможете отслеживать. Каждая система индивидуальна, и я знаю, что в Java и C нет функции, обеспечивающей это. C # может сказать вам, сколько памяти требуется конкретному объекту / приложению, чтобы вы могли рассчитать оценку.
Вы можете проверить это в своей системе. Напишите пример приложения, которое порождает потоки и видит, когда у вас заканчивается память. Используйте счетчик, чтобы сосчитать их. Это даст вам приблизительный диапазон для вашей системы.
В Java вы можете использовать ExecutorService
с пулом потоков. В зависимости от того, какую службу исполнителя вы используете, она может создавать потоки, если вы отправляете больше заданий.
Подобная техника существует в C #.
Лучший вопрос - каково максимальное количество потоков, порождаемое , чтобы избежать перебора .
Вы пытаетесь захватить ОС и сделать свое собственное управление процессами / потоками? Вы не должны делать это.