Заявление о том, что нити "легковесны", - в зависимости от платформы - не обязательно надежно.
Поток операционной системы должен поддерживать выполнение собственного кода, например, написано на C. Таким образом, он должен обеспечить стек приличного размера, обычно измеряемый в мегабайтах. Поэтому, если вы запустили 1000 потоков (возможно, пытаясь поддерживать 1000 одновременных подключений к вашему серверу), вам потребовалось бы 1 ГБ памяти в вашем процессе, прежде чем вы начнете выполнять какую-либо реальную работу.
Это реальная проблема в хорошо масштабируемых серверах, поэтому они не используют потоки, как будто они вообще легковесны. Они относятся к ним как к тяжелым ресурсам. Вместо этого они могут создать ограниченное количество потоков в пуле и позволить им брать рабочие элементы из очереди.
Поскольку это означает, что потоки являются долгоживущими и малыми по количеству, лучше использовать процессы вместо этого. Таким образом вы получаете изоляцию адресного пространства, и на самом деле нет проблем с нехваткой ресурсов.
В итоге: остерегайтесь «маркетинговых» заявлений, сделанных от имени потоков. Параллельная обработка хороша (все более и более важной), но потоки - это только один из способов ее достижения.