Легкие потоки в Java?
Есть ли какая-либо JSR или другая серьезная инициатива для создания легких потоков в Java? Что-то похожее на Голангские горуты или процессы Эрланга.
Java-потоки известны своим тяжелым весом. Что-то вроде 512-1024 kb на поток, поэтому это ограничивает максимальное количество потоков. Контекстное переключение между потоками Java также занимает "длинное" время.
Я слышал о Quasar "fiber" (http://docs.paralleluniverse.co/quasar/), которые представляют собой легкие потоки, реализованные как lib. Они кажутся немного сложными в использовании, хотя и не вызвали большого интереса.
Идеально легкие потоки должны быть встроены в ядро JVM.
Ответы
Ответ 1
Мне не известны никакие "легкие" решения, которые будут входить в процесс сообщества Java. Смотрите jep записи... нет ни слова о чем-либо подобном. Был запрос сопрограммы лет назад; но эта вещь выглядит довольно "мертвой".
Я думаю, что самое близкое, что вы можете получить сегодня, было бы чем-то вроде того, что akka framework предоставляет вам; так как те акковые акки все работают с "легкой" нитью активности, так сказать.
Ответ 2
Существует предложение для облегченных потоков ("волокон") в JVM под названием Project Loom: http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html
Это на ранних стадиях, пока ничего не выпущено, но все же есть на что обратить внимание.
Ответ 3
Изучите все концепции потоков в одном месте.
посетите здесь.
https://www.cronj.com/blog/threads-in-java/