Ответ 1
Спецификация виртуальной машины Java не указывает ограничение на количество потоков. Обычно они ограничены объемом доступного пространства стека, поскольку каждый поток получает свой собственный стек. (Неспособность выделить стек - это то, что обычно вызывает исключение OutOfMemory при попытке создать новый поток.) Я считаю, что пулы потоков и другие механизмы могут использоваться для ограничения количества потоков. (Это используется, например, с помощью Sun Portal Portal Portal, чтобы уменьшить количество транзакций.)
Различные реализации виртуальных машин могут налагать другие ограничения. Например, операционная система BlackBerry ограничивает несистемные потоки до 16 для каждого приложения и всего 64. Я ожидаю, что другие производители VM также наложили дополнительные ограничения. Я бы попросил производителя VM ответить на этот вопрос.