Windows защищает себя от этого типа истощения. CreateThread
завершится неудачно, как только вы достигнете максимально допустимого количества потоков на процесс (как правило, около 2000 потоков для систем Windows, на которых я имел удовольствие разрабатывать)
Возможно, вы ожидали, что какой-то ресурс будет исчерпан первым, но есть много ресурсов, которые требуются потокам, и первый, исчерпавший себя, вызовет сбой при последующих вызовах CreateThread
. Два основных ресурса, которые я могу использовать на своем опыте, - это виртуальная память из-за стека, необходимого каждому новому потоку, и ограничения количества потоков, которые ядро может хранить в планировщике (механизм переключения контекста).