Потоки исполняются в одном реальном потоке. Модель потоков примерно такая же, как и в одноядерных системах: т.е. задачи делятся на кванты и потихоньку выполняются. У задач есть приоритет, который определяет выделяемые ресурсы и шанс того, что задача попадёт на исполнение в данной итерации событийного цикла, а рулит всем - планировщик потоков.
Плюсы легковесных потоков Collection:
1) Они гарантируют, что сколько бы потоков ты не создал - ты не залочишь главный поток.
Т.е. допустим у тебя сервак на ноде, и у тебя есть синхронная задачка, например, валидация файлов, а файлы большие, то ты рискуешь занимать слишком много времени главного потока и от этого пострадают твои пользователи. Тебе придётся руками дробить задачу на setImmediate и делать кусочками, а твой код превратится в какашку. С Collection тебе просто думать об этом не надо, завернул задачу в поток и всё, а т.к. потоки реализует интерфейс промисов, то с async/await твой код остаётся синхронным. Задач миллион.
Пример на клиенте: у тебя сложный СПА, куча виджетов который что-то там делают и в какойто момент времени их совместная деятельность начинает фризить UI, ну например, у тебя есть селект с автокомплитом и список данных на пару тыщ элементов и ты делаешь поиск по мере заполнения, а т.к. по мимо этого виджета у тебя там целое приложение, которое живёт своей жизнью, то фризы по 50-100 мс вообще обычное дело, но они заметны и это реально напрягает. С Collection ты вообще не думаешь много данных или нет, просто оборачиваем узкое место в поток и всё, никаких фризов.
2) Async-flow
Collection предоставляет API для создания дочерних потоков (потоков в потоке и т.д.), а также поддерживает промисы, что позволяет ловко манипулировать асинхронными потоками данных без награмаждений в коде.
$C(['file1.json', 'file2.json']).thread().reduce(async (map, file) => Object.assign(map, await fs.readFile(file)), {})
3) Доступ к переменным замыкания и DOM.
Тут конечно спорный момент, ибо легко сделать гонку
Но при аккуратном подходе - это удобно.
4) Потоков может быть много: если Worker-ы ограничины на вкладку (по моему не больше 15 или 20-ти), то потоков Collection можно создавать пока память не кончиться) На практике это сотни тысяч.
Минусы:
1) Скорость - потоки заоптимизированы на неблокирующее выполнение, но при этом страдает скорость, т.к. всё в одном реальном потоке.
2) Можно легко устроить гонку.
***
В общем относится нужно к таким потокам, как к очень удобной абстракции.