9102年了,你还不知道有一个叫做vert.x的东西?
1)为什么重要,因为历史原因,以前java没有nio,直到1.4才把nio做出来,1.8才把lambda做出来,很多历史框架还停留在thread based阶段,并不奇怪,java是升级时候兼容性做得最好的语言,不用加之一,java的兼容性可以兼容到1.1版本的代码,正因为如此,java横行不是没有道理的
2)用协程可以避免,看看vert.x的并发机制就懂了,实现lock free之后,unit tests能过,基本上就不会出现并发才有可能出现的错误
3)go不是coroutine,而是goroutine,本质上是fiber,应该翻译成纤程,java目前有一个第三方的实现叫做quasar,作者正在openjdk伦敦做project loom,你可以在twitter上关注一个叫做ron pressler的人,他就是quasar和loom的作者,定期会有presentation释出,你可以多看看他的演讲,会对协程,纤程有更深入的理解
4)是的,所以vert.x现在主要用户其实用的都是vertx-lang-kotlin,下一个目标是es4x,真正用java暴力写的,并不太多
最后学好多线程是否有必要,有必要,因为不管是纤程还是协程,都是建立在多线程基础之上的延伸和发展,多线程都搞不定,其他两个更搞不定