kotlin协程是无栈协程,需要手动挂起和恢复~ async和await。所有编程语言,除了go和java的虚拟线程,其他都是无栈协程。
go是有栈协程,完全可以当线程来用。
无栈协程的问题是,有两种写法,同步和异步写法完全不同~;无栈协程的异步需要手动标记何时挂起,何时恢复,以及交给后台线程的任务是啥,这就导致同步和异步写法完全不同。
有栈协程只用同步写法,但可以有异步的效果。 一个协程在同步IO上阻塞,不会影响其他协程,也不会影响继续创建协程,这时候用同步就可以等同异步。
kotlin协程是无栈协程,需要手动挂起和恢复~ async和await。所有编程语言,除了go和java的虚拟线程,其他都是无栈协程。
go是有栈协程,完全可以当线程来用。
无栈协程的问题是,有两种写法,同步和异步写法完全不同~;无栈协程的异步需要手动标记何时挂起,何时恢复,以及交给后台线程的任务是啥,这就导致同步和异步写法完全不同。
有栈协程只用同步写法,但可以有异步的效果。 一个协程在同步IO上阻塞,不会影响其他协程,也不会影响继续创建协程,这时候用同步就可以等同异步。