Если вы используете Java, на конец 2017 года доступно 2 варианта:
Оба они основаны на commons-javaflow - они переписывают ваш код на уровне байт-кода, чтобы все заработало.
Я поддерживаю Сопрограммы - Преимущества в том, что он быстрый, поддерживает все основные системы сборки и поддерживает сериализацию / управление версиями ваших сопрограмм. Недостатком является то, что API имеет несколько отклонений от commons-javaflow.
Всилаев поддерживает Tasclate-Javaflow - я не использовал его, поэтому не могу об этом говорить, но он поддерживается и, глядя на примеры, его API-интерфейс ближе к общему javaflow.
Существуют также языковые функции в Kotlin и Scala (и, возможно, других языках на основе JVM), которые позволяют вам использовать сопрограммы. Но, прежде чем переключать языки, вы должны знать, что Kotlin, Scala или любой другой язык JVM du jour сегодня не является и никогда не будет Java. Что бы он ни делал в фоновом режиме, чтобы все заработало, он может не сработать, когда наступит следующий выпуск JVM.
Люди, которые поддерживают JDK в Oracle, имеют опыт использования этих сторонних языков JVM в качестве исследования рынка. Если высокоуровневая функция будет добавлена в сторонний язык JVM и она достаточно популярна, они включат ее в Java. Это то, что сейчас происходит с сопрограммами. Существует проект OpenJDK под названием Project Loom , который направлен на добавление сопрограмм в язык Java.
Для Project Loom еще рано. Если вы критически просматриваете предложение, это беспорядок. Я уверен, что со временем это стабилизируется, но то, что мы в конечном итоге получим, может полностью отличаться от того, что многие из нас ожидают.
Напомним, что вы можете либо использовать один из инструментариев байт-кода, либо переключать языки. Project Loom все еще находится на ранних стадиях, и есть вероятность, что он никогда не будет добавлен в Java.