Существует множество решений, направленных на реализацию потоков "user-space". Будь то golang.org goroutines, зеленые потоки python, асинхронные процессы С#, erlang и т.д. Идея состоит в том, чтобы разрешить параллельное программирование даже с одним или ограниченным числом потоков.
Что я не понимаю, почему потоки ОС так дороги? Как я вижу, в любом случае вам нужно сохранить стек задачи (поток ОС или поток пользователя), который составляет несколько десятков килобайт, и вам нужен планировщик для перемещения между двумя задачами.
ОС предоставляет обе эти функции бесплатно. Почему потоки ОС должны быть более дорогими, чем "зеленые" потоки? Какова причина предполагаемого ухудшения производительности, вызванного наличием выделенного потока ОС для каждой "задачи"?