I'm wondering if this scheduler is for something like user-space threads. And What is the relationship between such scheduler and go runtime for goroutine and JVM for Java virtual thread?
goroutines and Java virtual threads are a separate idea. The application saves its state and then yields back to a scheduler in the application.