Kotlin coroutines

Compiler-transformed continuations. suspend functions compile to state machines. Runtime schedules resumption.

Advertisement

Kotlin coroutines

Compiler-transformed continuations. suspend functions compile to state machines. Runtime schedules resumption.

Advertisement

Go goroutines

Runtime-managed. go keyword starts one. M:N scheduler multiplexes onto OS threads. Preemptive since Go 1.14.

Rust async

Futures + poll model. Compiler generates state machines. Runtime (Tokio, async-std) drives polling.

Java virtual threads

Runtime-managed, no compiler magic. Standard Thread API. Blocking works naturally. Simpler mental model for Java devs.

Which is best?

All achieve similar throughput. Choose by ecosystem + team familiarity. Go is simplest. Rust gives control. Kotlin is versatile. Java's VTs need no code changes.