I think you don't need an alternative to multi-threading, just a more efficient thread implementation.
Quasar adds fibers (i.e. lightweight threads) to the JVM, of which you can create even millions rather than few hundreds, so you can get the same performance of async frameworks without giving up the thread abstraction and regular imperative control flow constructs (sequence, loops etc.) available in the language.
It also unifies JVM/JDK's threads and its fibers under a common strand interface, so they can interoperate seamlessly, and provides a porting of java.util.concurrent
to this unified concept. This also means your porting effort will be minimal (if any).
On top of strands (either fibers or regular threads) Quasar also offers fully-fledged Erlang-style actors (see here for a comparison with Akka), blocking Go-like channels and dataflow programming, so you can choose the concurrent programming paradigm that suits best your skills and needs without being forced into one.
It also provides bindings for popular and standard technologies (as part of the Comsat project), so you can preserve your code assets because the porting effort will be minimal (if any). For the same reason you can also opt-out easily, should you choose to.
Currently Quasar has bindings for Java 7 and 8, Clojure under the Pulsar project and JetBrains' Kotlin. Being based on JVM bytecode instrumentation, Quasar can really work with any JVM language if an integration module is present, and it offers tools to build additional ones.
Starting with Java9, instrumentation will be automatic and no integration modules will be needed anymore.