应该这么说,不是不需要,是封装得比较高级
所对应的并发模式只有一种,而且多数都是像gui那样,一个eventloop的模式,这个在gui上特别常见,比如javafx,flutter,swiftui的并发模式几乎是一样的,javafx叫做application thread,安卓就是main thread,flutter是ui runner,其实都是一个东西
java对于多线程的封装比较原始,或者干脆这么说,就没怎么封装,就在操作系统的线程外面包了一层,你调用java的thread,其实就是在直接操作操作系统的线程api
所以java的并发模式,存在有多种可能性
eventloop那种,java当然有啊,vert.x不就是eventloop,而且vert.x在eventloop的模式上还做了发展,它是多条eventloop,node一个进程里面只有一条eventloop,对吧?要搞多条eventloop,node需要多进程,而vert.x一个进程里面,就有多条eventloop线程
像go那种,goroutine嘛,java对应的应该是loom,虚拟线程
所以你想要什么样的并发模型,java世界里面你都能找到对应的,而且vert.x还把这些给融合起来,集大成了,所以如果你能把vert.x搞懂,你再看其他所有的所谓多线程,哎呀,小儿科啦
但是vert.x即便集合了这么多东西,也没多困难,反正原理说来说去,就那些东西,翻来覆去地说,说最多几天就会了,聪明点的,几分钟听完就懂了,初中数学比这个难多了,技术的东西其实都是操作,没啥困难的
再说还有啥呀?没了
所以你问是优势还是劣势,java这个层面,是优势,因为我们不希望在语言这个层面,就把多线程给封装起来,我们希望在lib/framework,类库框架这个层面,将其封装,loom出来之后,java会分成eventloop事件循环线程为主(vert.x)以及virtual thread based也就是虚拟线程为主的两种并发模式,后者主要是针对现有的那些spring,jdbc等legacy遗留代码提升性能用的
前者嘛,其实我一直认为,可以用来创业,创业公司,尤其是需要写安卓,ios这些的创业公司,用vert.x,配合cloud云计算,极佳,因为人工成本超级低,低到我用3000一个月的实习生就能把软件写出来,比起其他老板去雇前端后端移动端四五个人,然后这群人还天天开会吵架互相之间推卸责任,那是不知道便宜到哪里去了,我们一个实习生就可以把这些事都给做了
所以为什么我能创业?秘籍就在于此
成本就这么低,就算我搞砸了,也没啥损失,实习生能吃掉我几个钱?
还没我堂妹一个月修车的钱多,她开车到处七剐八蹭的,她妈妈一个月给她修车修了几千块钱走,服了
所以你问这是java的优势还是劣势,只要你会,什么不是优势,对不对?
这些不都是工具而已嘛
所以闹心吗?你看我闹心吗?
嗯